! function(t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.mermaid = e() : t.mermaid = e() }(window, (function() { return function(t) { var e = {}; function n(r) { if (e[r]) return e[r].exports; var i = e[r] = { i: r, l: !1, exports: {} }; return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports } return n.m = t, n.c = e, n.d = function(t, e, r) { n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r }) }, n.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, n.t = function(t, e) { if (1 & e && (t = n(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var i in t) n.d(r, i, function(e) { return t[e] }.bind(null, i)); return r }, n.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t }; return n.d(e, "a", e), e }, n.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, n.p = "", n(n.s = 509) }([function(t, e, n) { "use strict"; n.r(e); var r = function(t, e) { return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN }, i = function(t) { var e; return 1 === t.length && (e = t, t = function(t, n) { return r(e(t), n) }), { left: function(e, n, r, i) { for (null == r && (r = 0), null == i && (i = e.length); r < i;) { var a = r + i >>> 1; t(e[a], n) < 0 ? r = a + 1 : i = a } return r }, right: function(e, n, r, i) { for (null == r && (r = 0), null == i && (i = e.length); r < i;) { var a = r + i >>> 1; t(e[a], n) > 0 ? i = a : r = a + 1 } return r } } }; var a = i(r), o = a.right, s = a.left, u = o, c = function(t, e) { null == e && (e = f); for (var n = 0, r = t.length - 1, i = t[0], a = new Array(r < 0 ? 0 : r); n < r;) a[n] = e(i, i = t[++n]); return a }; function f(t, e) { return [t, e] } var l = function(t, e, n) { var r, i, a, o, s = t.length, u = e.length, c = new Array(s * u); for (null == n && (n = f), r = a = 0; r < s; ++r) for (o = t[r], i = 0; i < u; ++i, ++a) c[a] = n(o, e[i]); return c }, h = function(t, e) { return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN }, d = function(t) { return null === t ? NaN : +t }, p = function(t, e) { var n, r, i = t.length, a = 0, o = -1, s = 0, u = 0; if (null == e) for (; ++o < i;) isNaN(n = d(t[o])) || (u += (r = n - s) * (n - (s += r / ++a))); else for (; ++o < i;) isNaN(n = d(e(t[o], o, t))) || (u += (r = n - s) * (n - (s += r / ++a))); if (a > 1) return u / (a - 1) }, g = function(t, e) { var n = p(t, e); return n ? Math.sqrt(n) : n }, y = function(t, e) { var n, r, i, a = t.length, o = -1; if (null == e) { for (; ++o < a;) if (null != (n = t[o]) && n >= n) for (r = i = n; ++o < a;) null != (n = t[o]) && (r > n && (r = n), i < n && (i = n)) } else for (; ++o < a;) if (null != (n = e(t[o], o, t)) && n >= n) for (r = i = n; ++o < a;) null != (n = e(t[o], o, t)) && (r > n && (r = n), i < n && (i = n)); return [r, i] }, b = Array.prototype, v = b.slice, m = b.map, _ = function(t) { return function() { return t } }, w = function(t) { return t }, x = function(t, e, n) { t = +t, e = +e, n = (i = arguments.length) < 2 ? (e = t, t = 0, 1) : i < 3 ? 1 : +n; for (var r = -1, i = 0 | Math.max(0, Math.ceil((e - t) / n)), a = new Array(i); ++r < i;) a[r] = t + r * n; return a }, k = Math.sqrt(50), E = Math.sqrt(10), A = Math.sqrt(2), S = function(t, e, n) { var r, i, a, o, s = -1; if (n = +n, (t = +t) === (e = +e) && n > 0) return [t]; if ((r = e < t) && (i = t, t = e, e = i), 0 === (o = M(t, e, n)) || !isFinite(o)) return []; if (o > 0) for (t = Math.ceil(t / o), e = Math.floor(e / o), a = new Array(i = Math.ceil(e - t + 1)); ++s < i;) a[s] = (t + s) * o; else for (t = Math.floor(t * o), e = Math.ceil(e * o), a = new Array(i = Math.ceil(t - e + 1)); ++s < i;) a[s] = (t - s) / o; return r && a.reverse(), a }; function M(t, e, n) { var r = (e - t) / Math.max(0, n), i = Math.floor(Math.log(r) / Math.LN10), a = r / Math.pow(10, i); return i >= 0 ? (a >= k ? 10 : a >= E ? 5 : a >= A ? 2 : 1) * Math.pow(10, i) : -Math.pow(10, -i) / (a >= k ? 10 : a >= E ? 5 : a >= A ? 2 : 1) } function T(t, e, n) { var r = Math.abs(e - t) / Math.max(0, n), i = Math.pow(10, Math.floor(Math.log(r) / Math.LN10)), a = r / i; return a >= k ? i *= 10 : a >= E ? i *= 5 : a >= A && (i *= 2), e < t ? -i : i } var D = function(t) { return Math.ceil(Math.log(t.length) / Math.LN2) + 1 }, C = function() { var t = w, e = y, n = D; function r(r) { var i, a, o = r.length, s = new Array(o); for (i = 0; i < o; ++i) s[i] = t(r[i], i, r); var c = e(s), f = c[0], l = c[1], h = n(s, f, l); Array.isArray(h) || (h = T(f, l, h), h = x(Math.ceil(f / h) * h, l, h)); for (var d = h.length; h[0] <= f;) h.shift(), --d; for (; h[d - 1] > l;) h.pop(), --d; var p, g = new Array(d + 1); for (i = 0; i <= d; ++i)(p = g[i] = []).x0 = i > 0 ? h[i - 1] : f, p.x1 = i < d ? h[i] : l; for (i = 0; i < o; ++i) f <= (a = s[i]) && a <= l && g[u(h, a, 0, d)].push(r[i]); return g } return r.value = function(e) { return arguments.length ? (t = "function" == typeof e ? e : _(e), r) : t }, r.domain = function(t) { return arguments.length ? (e = "function" == typeof t ? t : _([t[0], t[1]]), r) : e }, r.thresholds = function(t) { return arguments.length ? (n = "function" == typeof t ? t : Array.isArray(t) ? _(v.call(t)) : _(t), r) : n }, r }, N = function(t, e, n) { if (null == n && (n = d), r = t.length) { if ((e = +e) <= 0 || r < 2) return +n(t[0], 0, t); if (e >= 1) return +n(t[r - 1], r - 1, t); var r, i = (r - 1) * e, a = Math.floor(i), o = +n(t[a], a, t); return o + (+n(t[a + 1], a + 1, t) - o) * (i - a) } }, I = function(t, e, n) { return t = m.call(t, d).sort(r), Math.ceil((n - e) / (2 * (N(t, .75) - N(t, .25)) * Math.pow(t.length, -1 / 3))) }, L = function(t, e, n) { return Math.ceil((n - e) / (3.5 * g(t) * Math.pow(t.length, -1 / 3))) }, B = function(t, e) { var n, r, i = t.length, a = -1; if (null == e) { for (; ++a < i;) if (null != (n = t[a]) && n >= n) for (r = n; ++a < i;) null != (n = t[a]) && n > r && (r = n) } else for (; ++a < i;) if (null != (n = e(t[a], a, t)) && n >= n) for (r = n; ++a < i;) null != (n = e(t[a], a, t)) && n > r && (r = n); return r }, O = function(t, e) { var n, r = t.length, i = r, a = -1, o = 0; if (null == e) for (; ++a < r;) isNaN(n = d(t[a])) ? --i : o += n; else for (; ++a < r;) isNaN(n = d(e(t[a], a, t))) ? --i : o += n; if (i) return o / i }, R = function(t, e) { var n, i = t.length, a = -1, o = []; if (null == e) for (; ++a < i;) isNaN(n = d(t[a])) || o.push(n); else for (; ++a < i;) isNaN(n = d(e(t[a], a, t))) || o.push(n); return N(o.sort(r), .5) }, P = function(t) { for (var e, n, r, i = t.length, a = -1, o = 0; ++a < i;) o += t[a].length; for (n = new Array(o); --i >= 0;) for (e = (r = t[i]).length; --e >= 0;) n[--o] = r[e]; return n }, F = function(t, e) { var n, r, i = t.length, a = -1; if (null == e) { for (; ++a < i;) if (null != (n = t[a]) && n >= n) for (r = n; ++a < i;) null != (n = t[a]) && r > n && (r = n) } else for (; ++a < i;) if (null != (n = e(t[a], a, t)) && n >= n) for (r = n; ++a < i;) null != (n = e(t[a], a, t)) && r > n && (r = n); return r }, q = function(t, e) { for (var n = e.length, r = new Array(n); n--;) r[n] = t[e[n]]; return r }, j = function(t, e) { if (n = t.length) { var n, i, a = 0, o = 0, s = t[o]; for (null == e && (e = r); ++a < n;)(e(i = t[a], s) < 0 || 0 !== e(s, s)) && (s = i, o = a); return 0 === e(s, s) ? o : void 0 } }, U = function(t, e, n) { for (var r, i, a = (null == n ? t.length : n) - (e = null == e ? 0 : +e); a;) i = Math.random() * a-- | 0, r = t[a + e], t[a + e] = t[i + e], t[i + e] = r; return t }, z = function(t, e) { var n, r = t.length, i = -1, a = 0; if (null == e) for (; ++i < r;)(n = +t[i]) && (a += n); else for (; ++i < r;)(n = +e(t[i], i, t)) && (a += n); return a }, Y = function(t) { if (!(i = t.length)) return []; for (var e = -1, n = F(t, V), r = new Array(n); ++e < n;) for (var i, a = -1, o = r[e] = new Array(i); ++a < i;) o[a] = t[a][e]; return r }; function V(t) { return t.length } var H = function() { return Y(arguments) }, G = Array.prototype.slice, $ = function(t) { return t }, W = 1, K = 2, X = 3, Z = 4, J = 1e-6; function Q(t) { return "translate(" + (t + .5) + ",0)" } function tt(t) { return "translate(0," + (t + .5) + ")" } function et(t) { return function(e) { return +t(e) } } function nt(t) { var e = Math.max(0, t.bandwidth() - 1) / 2; return t.round() && (e = Math.round(e)), function(n) { return +t(n) + e } } function rt() { return !this.__axis } function it(t, e) { var n = [], r = null, i = null, a = 6, o = 6, s = 3, u = t === W || t === Z ? -1 : 1, c = t === Z || t === K ? "x" : "y", f = t === W || t === X ? Q : tt; function l(l) { var h = null == r ? e.ticks ? e.ticks.apply(e, n) : e.domain() : r, d = null == i ? e.tickFormat ? e.tickFormat.apply(e, n) : $ : i, p = Math.max(a, 0) + s, g = e.range(), y = +g[0] + .5, b = +g[g.length - 1] + .5, v = (e.bandwidth ? nt : et)(e.copy()), m = l.selection ? l.selection() : l, _ = m.selectAll(".domain").data([null]), w = m.selectAll(".tick").data(h, e).order(), x = w.exit(), k = w.enter().append("g").attr("class", "tick"), E = w.select("line"), A = w.select("text"); _ = _.merge(_.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")), w = w.merge(k), E = E.merge(k.append("line").attr("stroke", "currentColor").attr(c + "2", u * a)), A = A.merge(k.append("text").attr("fill", "currentColor").attr(c, u * p).attr("dy", t === W ? "0em" : t === X ? "0.71em" : "0.32em")), l !== m && (_ = _.transition(l), w = w.transition(l), E = E.transition(l), A = A.transition(l), x = x.transition(l).attr("opacity", J).attr("transform", (function(t) { return isFinite(t = v(t)) ? f(t) : this.getAttribute("transform") })), k.attr("opacity", J).attr("transform", (function(t) { var e = this.parentNode.__axis; return f(e && isFinite(e = e(t)) ? e : v(t)) }))), x.remove(), _.attr("d", t === Z || t == K ? o ? "M" + u * o + "," + y + "H0.5V" + b + "H" + u * o : "M0.5," + y + "V" + b : o ? "M" + y + "," + u * o + "V0.5H" + b + "V" + u * o : "M" + y + ",0.5H" + b), w.attr("opacity", 1).attr("transform", (function(t) { return f(v(t)) })), E.attr(c + "2", u * a), A.attr(c, u * p).text(d), m.filter(rt).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", t === K ? "start" : t === Z ? "end" : "middle"), m.each((function() { this.__axis = v })) } return l.scale = function(t) { return arguments.length ? (e = t, l) : e }, l.ticks = function() { return n = G.call(arguments), l }, l.tickArguments = function(t) { return arguments.length ? (n = null == t ? [] : G.call(t), l) : n.slice() }, l.tickValues = function(t) { return arguments.length ? (r = null == t ? null : G.call(t), l) : r && r.slice() }, l.tickFormat = function(t) { return arguments.length ? (i = t, l) : i }, l.tickSize = function(t) { return arguments.length ? (a = o = +t, l) : a }, l.tickSizeInner = function(t) { return arguments.length ? (a = +t, l) : a }, l.tickSizeOuter = function(t) { return arguments.length ? (o = +t, l) : o }, l.tickPadding = function(t) { return arguments.length ? (s = +t, l) : s }, l } function at(t) { return it(W, t) } function ot(t) { return it(K, t) } function st(t) { return it(X, t) } function ut(t) { return it(Z, t) } var ct = { value: function() {} }; function ft() { for (var t, e = 0, n = arguments.length, r = {}; e < n; ++e) { if (!(t = arguments[e] + "") || t in r || /[\s.]/.test(t)) throw new Error("illegal type: " + t); r[t] = [] } return new lt(r) } function lt(t) { this._ = t } function ht(t, e) { return t.trim().split(/^|\s+/).map((function(t) { var n = "", r = t.indexOf("."); if (r >= 0 && (n = t.slice(r + 1), t = t.slice(0, r)), t && !e.hasOwnProperty(t)) throw new Error("unknown type: " + t); return { type: t, name: n } })) } function dt(t, e) { for (var n, r = 0, i = t.length; r < i; ++r) if ((n = t[r]).name === e) return n.value } function pt(t, e, n) { for (var r = 0, i = t.length; r < i; ++r) if (t[r].name === e) { t[r] = ct, t = t.slice(0, r).concat(t.slice(r + 1)); break } return null != n && t.push({ name: e, value: n }), t } lt.prototype = ft.prototype = { constructor: lt, on: function(t, e) { var n, r = this._, i = ht(t + "", r), a = -1, o = i.length; if (!(arguments.length < 2)) { if (null != e && "function" != typeof e) throw new Error("invalid callback: " + e); for (; ++a < o;) if (n = (t = i[a]).type) r[n] = pt(r[n], t.name, e); else if (null == e) for (n in r) r[n] = pt(r[n], t.name, null); return this } for (; ++a < o;) if ((n = (t = i[a]).type) && (n = dt(r[n], t.name))) return n }, copy: function() { var t = {}, e = this._; for (var n in e) t[n] = e[n].slice(); return new lt(t) }, call: function(t, e) { if ((n = arguments.length - 2) > 0) for (var n, r, i = new Array(n), a = 0; a < n; ++a) i[a] = arguments[a + 2]; if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t); for (a = 0, n = (r = this._[t]).length; a < n; ++a) r[a].value.apply(e, i) }, apply: function(t, e, n) { if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t); for (var r = this._[t], i = 0, a = r.length; i < a; ++i) r[i].value.apply(e, n) } }; var gt = ft; function yt() {} var bt = function(t) { return null == t ? yt : function() { return this.querySelector(t) } }; function vt() { return [] } var mt = function(t) { return null == t ? vt : function() { return this.querySelectorAll(t) } }, _t = function(t) { return function() { return this.matches(t) } }, wt = function(t) { return new Array(t.length) }; function xt(t, e) { this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = e } xt.prototype = { constructor: xt, appendChild: function(t) { return this._parent.insertBefore(t, this._next) }, insertBefore: function(t, e) { return this._parent.insertBefore(t, e) }, querySelector: function(t) { return this._parent.querySelector(t) }, querySelectorAll: function(t) { return this._parent.querySelectorAll(t) } }; var kt = "$"; function Et(t, e, n, r, i, a) { for (var o, s = 0, u = e.length, c = a.length; s < c; ++s)(o = e[s]) ? (o.__data__ = a[s], r[s] = o) : n[s] = new xt(t, a[s]); for (; s < u; ++s)(o = e[s]) && (i[s] = o) } function At(t, e, n, r, i, a, o) { var s, u, c, f = {}, l = e.length, h = a.length, d = new Array(l); for (s = 0; s < l; ++s)(u = e[s]) && (d[s] = c = kt + o.call(u, u.__data__, s, e), c in f ? i[s] = u : f[c] = u); for (s = 0; s < h; ++s)(u = f[c = kt + o.call(t, a[s], s, a)]) ? (r[s] = u, u.__data__ = a[s], f[c] = null) : n[s] = new xt(t, a[s]); for (s = 0; s < l; ++s)(u = e[s]) && f[d[s]] === u && (i[s] = u) } function St(t, e) { return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN } var Mt = "http://www.w3.org/1999/xhtml", Tt = { svg: "http://www.w3.org/2000/svg", xhtml: Mt, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" }, Dt = function(t) { var e = t += "", n = e.indexOf(":"); return n >= 0 && "xmlns" !== (e = t.slice(0, n)) && (t = t.slice(n + 1)), Tt.hasOwnProperty(e) ? { space: Tt[e], local: t } : t }; function Ct(t) { return function() { this.removeAttribute(t) } } function Nt(t) { return function() { this.removeAttributeNS(t.space, t.local) } } function It(t, e) { return function() { this.setAttribute(t, e) } } function Lt(t, e) { return function() { this.setAttributeNS(t.space, t.local, e) } } function Bt(t, e) { return function() { var n = e.apply(this, arguments); null == n ? this.removeAttribute(t) : this.setAttribute(t, n) } } function Ot(t, e) { return function() { var n = e.apply(this, arguments); null == n ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, n) } } var Rt = function(t) { return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView }; function Pt(t) { return function() { this.style.removeProperty(t) } } function Ft(t, e, n) { return function() { this.style.setProperty(t, e, n) } } function qt(t, e, n) { return function() { var r = e.apply(this, arguments); null == r ? this.style.removeProperty(t) : this.style.setProperty(t, r, n) } } function jt(t, e) { return t.style.getPropertyValue(e) || Rt(t).getComputedStyle(t, null).getPropertyValue(e) } function Ut(t) { return function() { delete this[t] } } function zt(t, e) { return function() { this[t] = e } } function Yt(t, e) { return function() { var n = e.apply(this, arguments); null == n ? delete this[t] : this[t] = n } } function Vt(t) { return t.trim().split(/^|\s+/) } function Ht(t) { return t.classList || new Gt(t) } function Gt(t) { this._node = t, this._names = Vt(t.getAttribute("class") || "") } function $t(t, e) { for (var n = Ht(t), r = -1, i = e.length; ++r < i;) n.add(e[r]) } function Wt(t, e) { for (var n = Ht(t), r = -1, i = e.length; ++r < i;) n.remove(e[r]) } function Kt(t) { return function() { $t(this, t) } } function Xt(t) { return function() { Wt(this, t) } } function Zt(t, e) { return function() { (e.apply(this, arguments) ? $t : Wt)(this, t) } } Gt.prototype = { add: function(t) { this._names.indexOf(t) < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" "))) }, remove: function(t) { var e = this._names.indexOf(t); e >= 0 && (this._names.splice(e, 1), this._node.setAttribute("class", this._names.join(" "))) }, contains: function(t) { return this._names.indexOf(t) >= 0 } }; function Jt() { this.textContent = "" } function Qt(t) { return function() { this.textContent = t } } function te(t) { return function() { var e = t.apply(this, arguments); this.textContent = null == e ? "" : e } } function ee() { this.innerHTML = "" } function ne(t) { return function() { this.innerHTML = t } } function re(t) { return function() { var e = t.apply(this, arguments); this.innerHTML = null == e ? "" : e } } function ie() { this.nextSibling && this.parentNode.appendChild(this) } function ae() { this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild) } function oe(t) { return function() { var e = this.ownerDocument, n = this.namespaceURI; return n === Mt && e.documentElement.namespaceURI === Mt ? e.createElement(t) : e.createElementNS(n, t) } } function se(t) { return function() { return this.ownerDocument.createElementNS(t.space, t.local) } } var ue = function(t) { var e = Dt(t); return (e.local ? se : oe)(e) }; function ce() { return null } function fe() { var t = this.parentNode; t && t.removeChild(this) } function le() { var t = this.cloneNode(!1), e = this.parentNode; return e ? e.insertBefore(t, this.nextSibling) : t } function he() { var t = this.cloneNode(!0), e = this.parentNode; return e ? e.insertBefore(t, this.nextSibling) : t } var de = {}, pe = null; "undefined" != typeof document && ("onmouseenter" in document.documentElement || (de = { mouseenter: "mouseover", mouseleave: "mouseout" })); function ge(t, e, n) { return t = ye(t, e, n), function(e) { var n = e.relatedTarget; n && (n === this || 8 & n.compareDocumentPosition(this)) || t.call(this, e) } } function ye(t, e, n) { return function(r) { var i = pe; pe = r; try { t.call(this, this.__data__, e, n) } finally { pe = i } } } function be(t) { return t.trim().split(/^|\s+/).map((function(t) { var e = "", n = t.indexOf("."); return n >= 0 && (e = t.slice(n + 1), t = t.slice(0, n)), { type: t, name: e } })) } function ve(t) { return function() { var e = this.__on; if (e) { for (var n, r = 0, i = -1, a = e.length; r < a; ++r) n = e[r], t.type && n.type !== t.type || n.name !== t.name ? e[++i] = n : this.removeEventListener(n.type, n.listener, n.capture); ++i ? e.length = i : delete this.__on } } } function me(t, e, n) { var r = de.hasOwnProperty(t.type) ? ge : ye; return function(i, a, o) { var s, u = this.__on, c = r(e, a, o); if (u) for (var f = 0, l = u.length; f < l; ++f) if ((s = u[f]).type === t.type && s.name === t.name) return this.removeEventListener(s.type, s.listener, s.capture), this.addEventListener(s.type, s.listener = c, s.capture = n), void(s.value = e); this.addEventListener(t.type, c, n), s = { type: t.type, name: t.name, value: e, listener: c, capture: n }, u ? u.push(s) : this.__on = [s] } } function _e(t, e, n, r) { var i = pe; t.sourceEvent = pe, pe = t; try { return e.apply(n, r) } finally { pe = i } } function we(t, e, n) { var r = Rt(t), i = r.CustomEvent; "function" == typeof i ? i = new i(e, n) : (i = r.document.createEvent("Event"), n ? (i.initEvent(e, n.bubbles, n.cancelable), i.detail = n.detail) : i.initEvent(e, !1, !1)), t.dispatchEvent(i) } function xe(t, e) { return function() { return we(this, t, e) } } function ke(t, e) { return function() { return we(this, t, e.apply(this, arguments)) } } var Ee = [null]; function Ae(t, e) { this._groups = t, this._parents = e } function Se() { return new Ae([ [document.documentElement] ], Ee) } Ae.prototype = Se.prototype = { constructor: Ae, select: function(t) { "function" != typeof t && (t = bt(t)); for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) for (var a, o, s = e[i], u = s.length, c = r[i] = new Array(u), f = 0; f < u; ++f)(a = s[f]) && (o = t.call(a, a.__data__, f, s)) && ("__data__" in a && (o.__data__ = a.__data__), c[f] = o); return new Ae(r, this._parents) }, selectAll: function(t) { "function" != typeof t && (t = mt(t)); for (var e = this._groups, n = e.length, r = [], i = [], a = 0; a < n; ++a) for (var o, s = e[a], u = s.length, c = 0; c < u; ++c)(o = s[c]) && (r.push(t.call(o, o.__data__, c, s)), i.push(o)); return new Ae(r, i) }, filter: function(t) { "function" != typeof t && (t = _t(t)); for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) for (var a, o = e[i], s = o.length, u = r[i] = [], c = 0; c < s; ++c)(a = o[c]) && t.call(a, a.__data__, c, o) && u.push(a); return new Ae(r, this._parents) }, data: function(t, e) { if (!t) return p = new Array(this.size()), f = -1, this.each((function(t) { p[++f] = t })), p; var n, r = e ? At : Et, i = this._parents, a = this._groups; "function" != typeof t && (n = t, t = function() { return n }); for (var o = a.length, s = new Array(o), u = new Array(o), c = new Array(o), f = 0; f < o; ++f) { var l = i[f], h = a[f], d = h.length, p = t.call(l, l && l.__data__, f, i), g = p.length, y = u[f] = new Array(g), b = s[f] = new Array(g); r(l, h, y, b, c[f] = new Array(d), p, e); for (var v, m, _ = 0, w = 0; _ < g; ++_) if (v = y[_]) { for (_ >= w && (w = _ + 1); !(m = b[w]) && ++w < g;); v._next = m || null } } return (s = new Ae(s, i))._enter = u, s._exit = c, s }, enter: function() { return new Ae(this._enter || this._groups.map(wt), this._parents) }, exit: function() { return new Ae(this._exit || this._groups.map(wt), this._parents) }, join: function(t, e, n) { var r = this.enter(), i = this, a = this.exit(); return r = "function" == typeof t ? t(r) : r.append(t + ""), null != e && (i = e(i)), null == n ? a.remove() : n(a), r && i ? r.merge(i).order() : i }, merge: function(t) { for (var e = this._groups, n = t._groups, r = e.length, i = n.length, a = Math.min(r, i), o = new Array(r), s = 0; s < a; ++s) for (var u, c = e[s], f = n[s], l = c.length, h = o[s] = new Array(l), d = 0; d < l; ++d)(u = c[d] || f[d]) && (h[d] = u); for (; s < r; ++s) o[s] = e[s]; return new Ae(o, this._parents) }, order: function() { for (var t = this._groups, e = -1, n = t.length; ++e < n;) for (var r, i = t[e], a = i.length - 1, o = i[a]; --a >= 0;)(r = i[a]) && (o && 4 ^ r.compareDocumentPosition(o) && o.parentNode.insertBefore(r, o), o = r); return this }, sort: function(t) { function e(e, n) { return e && n ? t(e.__data__, n.__data__) : !e - !n } t || (t = St); for (var n = this._groups, r = n.length, i = new Array(r), a = 0; a < r; ++a) { for (var o, s = n[a], u = s.length, c = i[a] = new Array(u), f = 0; f < u; ++f)(o = s[f]) && (c[f] = o); c.sort(e) } return new Ae(i, this._parents).order() }, call: function() { var t = arguments[0]; return arguments[0] = this, t.apply(null, arguments), this }, nodes: function() { var t = new Array(this.size()), e = -1; return this.each((function() { t[++e] = this })), t }, node: function() { for (var t = this._groups, e = 0, n = t.length; e < n; ++e) for (var r = t[e], i = 0, a = r.length; i < a; ++i) { var o = r[i]; if (o) return o } return null }, size: function() { var t = 0; return this.each((function() { ++t })), t }, empty: function() { return !this.node() }, each: function(t) { for (var e = this._groups, n = 0, r = e.length; n < r; ++n) for (var i, a = e[n], o = 0, s = a.length; o < s; ++o)(i = a[o]) && t.call(i, i.__data__, o, a); return this }, attr: function(t, e) { var n = Dt(t); if (arguments.length < 2) { var r = this.node(); return n.local ? r.getAttributeNS(n.space, n.local) : r.getAttribute(n) } return this.each((null == e ? n.local ? Nt : Ct : "function" == typeof e ? n.local ? Ot : Bt : n.local ? Lt : It)(n, e)) }, style: function(t, e, n) { return arguments.length > 1 ? this.each((null == e ? Pt : "function" == typeof e ? qt : Ft)(t, e, null == n ? "" : n)) : jt(this.node(), t) }, property: function(t, e) { return arguments.length > 1 ? this.each((null == e ? Ut : "function" == typeof e ? Yt : zt)(t, e)) : this.node()[t] }, classed: function(t, e) { var n = Vt(t + ""); if (arguments.length < 2) { for (var r = Ht(this.node()), i = -1, a = n.length; ++i < a;) if (!r.contains(n[i])) return !1; return !0 } return this.each(("function" == typeof e ? Zt : e ? Kt : Xt)(n, e)) }, text: function(t) { return arguments.length ? this.each(null == t ? Jt : ("function" == typeof t ? te : Qt)(t)) : this.node().textContent }, html: function(t) { return arguments.length ? this.each(null == t ? ee : ("function" == typeof t ? re : ne)(t)) : this.node().innerHTML }, raise: function() { return this.each(ie) }, lower: function() { return this.each(ae) }, append: function(t) { var e = "function" == typeof t ? t : ue(t); return this.select((function() { return this.appendChild(e.apply(this, arguments)) })) }, insert: function(t, e) { var n = "function" == typeof t ? t : ue(t), r = null == e ? ce : "function" == typeof e ? e : bt(e); return this.select((function() { return this.insertBefore(n.apply(this, arguments), r.apply(this, arguments) || null) })) }, remove: function() { return this.each(fe) }, clone: function(t) { return this.select(t ? he : le) }, datum: function(t) { return arguments.length ? this.property("__data__", t) : this.node().__data__ }, on: function(t, e, n) { var r, i, a = be(t + ""), o = a.length; if (!(arguments.length < 2)) { for (s = e ? me : ve, null == n && (n = !1), r = 0; r < o; ++r) this.each(s(a[r], e, n)); return this } var s = this.node().__on; if (s) for (var u, c = 0, f = s.length; c < f; ++c) for (r = 0, u = s[c]; r < o; ++r) if ((i = a[r]).type === u.type && i.name === u.name) return u.value }, dispatch: function(t, e) { return this.each(("function" == typeof e ? ke : xe)(t, e)) } }; var Me = Se, Te = function(t) { return "string" == typeof t ? new Ae([ [document.querySelector(t)] ], [document.documentElement]) : new Ae([ [t] ], Ee) }; function De() { pe.stopImmediatePropagation() } var Ce = function() { pe.preventDefault(), pe.stopImmediatePropagation() }, Ne = function(t) { var e = t.document.documentElement, n = Te(t).on("dragstart.drag", Ce, !0); "onselectstart" in e ? n.on("selectstart.drag", Ce, !0) : (e.__noselect = e.style.MozUserSelect, e.style.MozUserSelect = "none") }; function Ie(t, e) { var n = t.document.documentElement, r = Te(t).on("dragstart.drag", null); e && (r.on("click.drag", Ce, !0), setTimeout((function() { r.on("click.drag", null) }), 0)), "onselectstart" in n ? r.on("selectstart.drag", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect) } var Le = function(t, e, n) { t.prototype = e.prototype = n, n.constructor = t }; function Be(t, e) { var n = Object.create(t.prototype); for (var r in e) n[r] = e[r]; return n } function Oe() {} var Re = "\\s*([+-]?\\d+)\\s*", Pe = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", Fe = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", qe = /^#([0-9a-f]{3,8})$/, je = new RegExp("^rgb\\(" + [Re, Re, Re] + "\\)$"), Ue = new RegExp("^rgb\\(" + [Fe, Fe, Fe] + "\\)$"), ze = new RegExp("^rgba\\(" + [Re, Re, Re, Pe] + "\\)$"), Ye = new RegExp("^rgba\\(" + [Fe, Fe, Fe, Pe] + "\\)$"), Ve = new RegExp("^hsl\\(" + [Pe, Fe, Fe] + "\\)$"), He = new RegExp("^hsla\\(" + [Pe, Fe, Fe, Pe] + "\\)$"), Ge = { aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074 }; function $e() { return this.rgb().formatHex() } function We() { return this.rgb().formatRgb() } function Ke(t) { var e, n; return t = (t + "").trim().toLowerCase(), (e = qe.exec(t)) ? (n = e[1].length, e = parseInt(e[1], 16), 6 === n ? Xe(e) : 3 === n ? new tn(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | 240 & e, (15 & e) << 4 | 15 & e, 1) : 8 === n ? new tn(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (255 & e) / 255) : 4 === n ? new tn(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | 240 & e, ((15 & e) << 4 | 15 & e) / 255) : null) : (e = je.exec(t)) ? new tn(e[1], e[2], e[3], 1) : (e = Ue.exec(t)) ? new tn(255 * e[1] / 100, 255 * e[2] / 100, 255 * e[3] / 100, 1) : (e = ze.exec(t)) ? Ze(e[1], e[2], e[3], e[4]) : (e = Ye.exec(t)) ? Ze(255 * e[1] / 100, 255 * e[2] / 100, 255 * e[3] / 100, e[4]) : (e = Ve.exec(t)) ? an(e[1], e[2] / 100, e[3] / 100, 1) : (e = He.exec(t)) ? an(e[1], e[2] / 100, e[3] / 100, e[4]) : Ge.hasOwnProperty(t) ? Xe(Ge[t]) : "transparent" === t ? new tn(NaN, NaN, NaN, 0) : null } function Xe(t) { return new tn(t >> 16 & 255, t >> 8 & 255, 255 & t, 1) } function Ze(t, e, n, r) { return r <= 0 && (t = e = n = NaN), new tn(t, e, n, r) } function Je(t) { return t instanceof Oe || (t = Ke(t)), t ? new tn((t = t.rgb()).r, t.g, t.b, t.opacity) : new tn } function Qe(t, e, n, r) { return 1 === arguments.length ? Je(t) : new tn(t, e, n, null == r ? 1 : r) } function tn(t, e, n, r) { this.r = +t, this.g = +e, this.b = +n, this.opacity = +r } function en() { return "#" + rn(this.r) + rn(this.g) + rn(this.b) } function nn() { var t = this.opacity; return (1 === (t = isNaN(t) ? 1 : Math.max(0, Math.min(1, t))) ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (1 === t ? ")" : ", " + t + ")") } function rn(t) { return ((t = Math.max(0, Math.min(255, Math.round(t) || 0))) < 16 ? "0" : "") + t.toString(16) } function an(t, e, n, r) { return r <= 0 ? t = e = n = NaN : n <= 0 || n >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new un(t, e, n, r) } function on(t) { if (t instanceof un) return new un(t.h, t.s, t.l, t.opacity); if (t instanceof Oe || (t = Ke(t)), !t) return new un; if (t instanceof un) return t; var e = (t = t.rgb()).r / 255, n = t.g / 255, r = t.b / 255, i = Math.min(e, n, r), a = Math.max(e, n, r), o = NaN, s = a - i, u = (a + i) / 2; return s ? (o = e === a ? (n - r) / s + 6 * (n < r) : n === a ? (r - e) / s + 2 : (e - n) / s + 4, s /= u < .5 ? a + i : 2 - a - i, o *= 60) : s = u > 0 && u < 1 ? 0 : o, new un(o, s, u, t.opacity) } function sn(t, e, n, r) { return 1 === arguments.length ? on(t) : new un(t, e, n, null == r ? 1 : r) } function un(t, e, n, r) { this.h = +t, this.s = +e, this.l = +n, this.opacity = +r } function cn(t, e, n) { return 255 * (t < 60 ? e + (n - e) * t / 60 : t < 180 ? n : t < 240 ? e + (n - e) * (240 - t) / 60 : e) } function fn(t, e, n, r, i) { var a = t * t, o = a * t; return ((1 - 3 * t + 3 * a - o) * e + (4 - 6 * a + 3 * o) * n + (1 + 3 * t + 3 * a - 3 * o) * r + o * i) / 6 } Le(Oe, Ke, { copy: function(t) { return Object.assign(new this.constructor, this, t) }, displayable: function() { return this.rgb().displayable() }, hex: $e, formatHex: $e, formatHsl: function() { return on(this).formatHsl() }, formatRgb: We, toString: We }), Le(tn, Qe, Be(Oe, { brighter: function(t) { return t = null == t ? 1 / .7 : Math.pow(1 / .7, t), new tn(this.r * t, this.g * t, this.b * t, this.opacity) }, darker: function(t) { return t = null == t ? .7 : Math.pow(.7, t), new tn(this.r * t, this.g * t, this.b * t, this.opacity) }, rgb: function() { return this }, displayable: function() { return -.5 <= this.r && this.r < 255.5 && -.5 <= this.g && this.g < 255.5 && -.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1 }, hex: en, formatHex: en, formatRgb: nn, toString: nn })), Le(un, sn, Be(Oe, { brighter: function(t) { return t = null == t ? 1 / .7 : Math.pow(1 / .7, t), new un(this.h, this.s, this.l * t, this.opacity) }, darker: function(t) { return t = null == t ? .7 : Math.pow(.7, t), new un(this.h, this.s, this.l * t, this.opacity) }, rgb: function() { var t = this.h % 360 + 360 * (this.h < 0), e = isNaN(t) || isNaN(this.s) ? 0 : this.s, n = this.l, r = n + (n < .5 ? n : 1 - n) * e, i = 2 * n - r; return new tn(cn(t >= 240 ? t - 240 : t + 120, i, r), cn(t, i, r), cn(t < 120 ? t + 240 : t - 120, i, r), this.opacity) }, displayable: function() { return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1 }, formatHsl: function() { var t = this.opacity; return (1 === (t = isNaN(t) ? 1 : Math.max(0, Math.min(1, t))) ? "hsl(" : "hsla(") + (this.h || 0) + ", " + 100 * (this.s || 0) + "%, " + 100 * (this.l || 0) + "%" + (1 === t ? ")" : ", " + t + ")") } })); var ln = function(t) { var e = t.length - 1; return function(n) { var r = n <= 0 ? n = 0 : n >= 1 ? (n = 1, e - 1) : Math.floor(n * e), i = t[r], a = t[r + 1], o = r > 0 ? t[r - 1] : 2 * i - a, s = r < e - 1 ? t[r + 2] : 2 * a - i; return fn((n - r / e) * e, o, i, a, s) } }, hn = function(t) { var e = t.length; return function(n) { var r = Math.floor(((n %= 1) < 0 ? ++n : n) * e), i = t[(r + e - 1) % e], a = t[r % e], o = t[(r + 1) % e], s = t[(r + 2) % e]; return fn((n - r / e) * e, i, a, o, s) } }, dn = function(t) { return function() { return t } }; function pn(t, e) { return function(n) { return t + n * e } } function gn(t, e) { var n = e - t; return n ? pn(t, n > 180 || n < -180 ? n - 360 * Math.round(n / 360) : n) : dn(isNaN(t) ? e : t) } function yn(t) { return 1 == (t = +t) ? bn : function(e, n) { return n - e ? function(t, e, n) { return t = Math.pow(t, n), e = Math.pow(e, n) - t, n = 1 / n, function(r) { return Math.pow(t + r * e, n) } }(e, n, t) : dn(isNaN(e) ? n : e) } } function bn(t, e) { var n = e - t; return n ? pn(t, n) : dn(isNaN(t) ? e : t) } var vn = function t(e) { var n = yn(e); function r(t, e) { var r = n((t = Qe(t)).r, (e = Qe(e)).r), i = n(t.g, e.g), a = n(t.b, e.b), o = bn(t.opacity, e.opacity); return function(e) { return t.r = r(e), t.g = i(e), t.b = a(e), t.opacity = o(e), t + "" } } return r.gamma = t, r }(1); function mn(t) { return function(e) { var n, r, i = e.length, a = new Array(i), o = new Array(i), s = new Array(i); for (n = 0; n < i; ++n) r = Qe(e[n]), a[n] = r.r || 0, o[n] = r.g || 0, s[n] = r.b || 0; return a = t(a), o = t(o), s = t(s), r.opacity = 1, function(t) { return r.r = a(t), r.g = o(t), r.b = s(t), r + "" } } } var _n = mn(ln), wn = mn(hn), xn = function(t, e) { e || (e = []); var n, r = t ? Math.min(e.length, t.length) : 0, i = e.slice(); return function(a) { for (n = 0; n < r; ++n) i[n] = t[n] * (1 - a) + e[n] * a; return i } }; function kn(t) { return ArrayBuffer.isView(t) && !(t instanceof DataView) } var En = function(t, e) { return (kn(e) ? xn : An)(t, e) }; function An(t, e) { var n, r = e ? e.length : 0, i = t ? Math.min(r, t.length) : 0, a = new Array(i), o = new Array(r); for (n = 0; n < i; ++n) a[n] = Bn(t[n], e[n]); for (; n < r; ++n) o[n] = e[n]; return function(t) { for (n = 0; n < i; ++n) o[n] = a[n](t); return o } } var Sn = function(t, e) { var n = new Date; return t = +t, e = +e, function(r) { return n.setTime(t * (1 - r) + e * r), n } }, Mn = function(t, e) { return t = +t, e = +e, function(n) { return t * (1 - n) + e * n } }, Tn = function(t, e) { var n, r = {}, i = {}; for (n in null !== t && "object" == typeof t || (t = {}), null !== e && "object" == typeof e || (e = {}), e) n in t ? r[n] = Bn(t[n], e[n]) : i[n] = e[n]; return function(t) { for (n in r) i[n] = r[n](t); return i } }, Dn = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Cn = new RegExp(Dn.source, "g"); var Nn, In, Ln = function(t, e) { var n, r, i, a = Dn.lastIndex = Cn.lastIndex = 0, o = -1, s = [], u = []; for (t += "", e += ""; (n = Dn.exec(t)) && (r = Cn.exec(e));)(i = r.index) > a && (i = e.slice(a, i), s[o] ? s[o] += i : s[++o] = i), (n = n[0]) === (r = r[0]) ? s[o] ? s[o] += r : s[++o] = r : (s[++o] = null, u.push({ i: o, x: Mn(n, r) })), a = Cn.lastIndex; return a < e.length && (i = e.slice(a), s[o] ? s[o] += i : s[++o] = i), s.length < 2 ? u[0] ? function(t) { return function(e) { return t(e) + "" } }(u[0].x) : function(t) { return function() { return t } }(e) : (e = u.length, function(t) { for (var n, r = 0; r < e; ++r) s[(n = u[r]).i] = n.x(t); return s.join("") }) }, Bn = function(t, e) { var n, r = typeof e; return null == e || "boolean" === r ? dn(e) : ("number" === r ? Mn : "string" === r ? (n = Ke(e)) ? (e = n, vn) : Ln : e instanceof Ke ? vn : e instanceof Date ? Sn : kn(e) ? xn : Array.isArray(e) ? An : "function" != typeof e.valueOf && "function" != typeof e.toString || isNaN(e) ? Tn : Mn)(t, e) }, On = function() { for (var t, e = pe; t = e.sourceEvent;) e = t; return e }, Rn = function(t, e) { var n = t.ownerSVGElement || t; if (n.createSVGPoint) { var r = n.createSVGPoint(); return r.x = e.clientX, r.y = e.clientY, [(r = r.matrixTransform(t.getScreenCTM().inverse())).x, r.y] } var i = t.getBoundingClientRect(); return [e.clientX - i.left - t.clientLeft, e.clientY - i.top - t.clientTop] }, Pn = function(t, e, n) { arguments.length < 3 && (n = e, e = On().changedTouches); for (var r, i = 0, a = e ? e.length : 0; i < a; ++i) if ((r = e[i]).identifier === n) return Rn(t, r); return null }, Fn = function(t) { var e = On(); return e.changedTouches && (e = e.changedTouches[0]), Rn(t, e) }, qn = 0, jn = 0, Un = 0, zn = 1e3, Yn = 0, Vn = 0, Hn = 0, Gn = "object" == typeof performance && performance.now ? performance : Date, $n = "object" == typeof window && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) { setTimeout(t, 17) }; function Wn() { return Vn || ($n(Kn), Vn = Gn.now() + Hn) } function Kn() { Vn = 0 } function Xn() { this._call = this._time = this._next = null } function Zn(t, e, n) { var r = new Xn; return r.restart(t, e, n), r } function Jn() { Wn(), ++qn; for (var t, e = Nn; e;)(t = Vn - e._time) >= 0 && e._call.call(null, t), e = e._next; --qn } function Qn() { Vn = (Yn = Gn.now()) + Hn, qn = jn = 0; try { Jn() } finally { qn = 0, function() { var t, e, n = Nn, r = 1 / 0; for (; n;) n._call ? (r > n._time && (r = n._time), t = n, n = n._next) : (e = n._next, n._next = null, n = t ? t._next = e : Nn = e); In = t, er(r) }(), Vn = 0 } } function tr() { var t = Gn.now(), e = t - Yn; e > zn && (Hn -= e, Yn = t) } function er(t) { qn || (jn && (jn = clearTimeout(jn)), t - Vn > 24 ? (t < 1 / 0 && (jn = setTimeout(Qn, t - Gn.now() - Hn)), Un && (Un = clearInterval(Un))) : (Un || (Yn = Gn.now(), Un = setInterval(tr, zn)), qn = 1, $n(Qn))) } Xn.prototype = Zn.prototype = { constructor: Xn, restart: function(t, e, n) { if ("function" != typeof t) throw new TypeError("callback is not a function"); n = (null == n ? Wn() : +n) + (null == e ? 0 : +e), this._next || In === this || (In ? In._next = this : Nn = this, In = this), this._call = t, this._time = n, er() }, stop: function() { this._call && (this._call = null, this._time = 1 / 0, er()) } }; var nr = function(t, e, n) { var r = new Xn; return e = null == e ? 0 : +e, r.restart((function(n) { r.stop(), t(n + e) }), e, n), r }, rr = gt("start", "end", "cancel", "interrupt"), ir = [], ar = 0, or = 1, sr = 2, ur = 3, cr = 4, fr = 5, lr = 6, hr = function(t, e, n, r, i, a) { var o = t.__transition; if (o) { if (n in o) return } else t.__transition = {}; ! function(t, e, n) { var r, i = t.__transition; function a(u) { var c, f, l, h; if (n.state !== or) return s(); for (c in i) if ((h = i[c]).name === n.name) { if (h.state === ur) return nr(a); h.state === cr ? (h.state = lr, h.timer.stop(), h.on.call("interrupt", t, t.__data__, h.index, h.group), delete i[c]) : +c < e && (h.state = lr, h.timer.stop(), h.on.call("cancel", t, t.__data__, h.index, h.group), delete i[c]) } if (nr((function() { n.state === ur && (n.state = cr, n.timer.restart(o, n.delay, n.time), o(u)) })), n.state = sr, n.on.call("start", t, t.__data__, n.index, n.group), n.state === sr) { for (n.state = ur, r = new Array(l = n.tween.length), c = 0, f = -1; c < l; ++c)(h = n.tween[c].value.call(t, t.__data__, n.index, n.group)) && (r[++f] = h); r.length = f + 1 } } function o(e) { for (var i = e < n.duration ? n.ease.call(null, e / n.duration) : (n.timer.restart(s), n.state = fr, 1), a = -1, o = r.length; ++a < o;) r[a].call(t, i); n.state === fr && (n.on.call("end", t, t.__data__, n.index, n.group), s()) } function s() { for (var r in n.state = lr, n.timer.stop(), delete i[e], i) return; delete t.__transition } i[e] = n, n.timer = Zn((function(t) { n.state = or, n.timer.restart(a, n.delay, n.time), n.delay <= t && a(t - n.delay) }), 0, n.time) }(t, n, { name: e, index: r, group: i, on: rr, tween: ir, time: a.time, delay: a.delay, duration: a.duration, ease: a.ease, timer: null, state: ar }) }; function dr(t, e) { var n = gr(t, e); if (n.state > ar) throw new Error("too late; already scheduled"); return n } function pr(t, e) { var n = gr(t, e); if (n.state > ur) throw new Error("too late; already running"); return n } function gr(t, e) { var n = t.__transition; if (!n || !(n = n[e])) throw new Error("transition not found"); return n } var yr, br, vr, mr, _r = function(t, e) { var n, r, i, a = t.__transition, o = !0; if (a) { for (i in e = null == e ? null : e + "", a)(n = a[i]).name === e ? (r = n.state > sr && n.state < fr, n.state = lr, n.timer.stop(), n.on.call(r ? "interrupt" : "cancel", t, t.__data__, n.index, n.group), delete a[i]) : o = !1; o && delete t.__transition } }, wr = 180 / Math.PI, xr = { translateX: 0, translateY: 0, rotate: 0, skewX: 0, scaleX: 1, scaleY: 1 }, kr = function(t, e, n, r, i, a) { var o, s, u; return (o = Math.sqrt(t * t + e * e)) && (t /= o, e /= o), (u = t * n + e * r) && (n -= t * u, r -= e * u), (s = Math.sqrt(n * n + r * r)) && (n /= s, r /= s, u /= s), t * r < e * n && (t = -t, e = -e, u = -u, o = -o), { translateX: i, translateY: a, rotate: Math.atan2(e, t) * wr, skewX: Math.atan(u) * wr, scaleX: o, scaleY: s } }; function Er(t, e, n, r) { function i(t) { return t.length ? t.pop() + " " : "" } return function(a, o) { var s = [], u = []; return a = t(a), o = t(o), function(t, r, i, a, o, s) { if (t !== i || r !== a) { var u = o.push("translate(", null, e, null, n); s.push({ i: u - 4, x: Mn(t, i) }, { i: u - 2, x: Mn(r, a) }) } else(i || a) && o.push("translate(" + i + e + a + n) }(a.translateX, a.translateY, o.translateX, o.translateY, s, u), function(t, e, n, a) { t !== e ? (t - e > 180 ? e += 360 : e - t > 180 && (t += 360), a.push({ i: n.push(i(n) + "rotate(", null, r) - 2, x: Mn(t, e) })) : e && n.push(i(n) + "rotate(" + e + r) }(a.rotate, o.rotate, s, u), function(t, e, n, a) { t !== e ? a.push({ i: n.push(i(n) + "skewX(", null, r) - 2, x: Mn(t, e) }) : e && n.push(i(n) + "skewX(" + e + r) }(a.skewX, o.skewX, s, u), function(t, e, n, r, a, o) { if (t !== n || e !== r) { var s = a.push(i(a) + "scale(", null, ",", null, ")"); o.push({ i: s - 4, x: Mn(t, n) }, { i: s - 2, x: Mn(e, r) }) } else 1 === n && 1 === r || a.push(i(a) + "scale(" + n + "," + r + ")") }(a.scaleX, a.scaleY, o.scaleX, o.scaleY, s, u), a = o = null, function(t) { for (var e, n = -1, r = u.length; ++n < r;) s[(e = u[n]).i] = e.x(t); return s.join("") } } } var Ar = Er((function(t) { return "none" === t ? xr : (yr || (yr = document.createElement("DIV"), br = document.documentElement, vr = document.defaultView), yr.style.transform = t, t = vr.getComputedStyle(br.appendChild(yr), null).getPropertyValue("transform"), br.removeChild(yr), t = t.slice(7, -1).split(","), kr(+t[0], +t[1], +t[2], +t[3], +t[4], +t[5])) }), "px, ", "px)", "deg)"), Sr = Er((function(t) { return null == t ? xr : (mr || (mr = document.createElementNS("http://www.w3.org/2000/svg", "g")), mr.setAttribute("transform", t), (t = mr.transform.baseVal.consolidate()) ? (t = t.matrix, kr(t.a, t.b, t.c, t.d, t.e, t.f)) : xr) }), ", ", ")", ")"); function Mr(t, e) { var n, r; return function() { var i = pr(this, t), a = i.tween; if (a !== n) for (var o = 0, s = (r = n = a).length; o < s; ++o) if (r[o].name === e) { (r = r.slice()).splice(o, 1); break } i.tween = r } } function Tr(t, e, n) { var r, i; if ("function" != typeof n) throw new Error; return function() { var a = pr(this, t), o = a.tween; if (o !== r) { i = (r = o).slice(); for (var s = { name: e, value: n }, u = 0, c = i.length; u < c; ++u) if (i[u].name === e) { i[u] = s; break } u === c && i.push(s) } a.tween = i } } function Dr(t, e, n) { var r = t._id; return t.each((function() { var t = pr(this, r); (t.value || (t.value = {}))[e] = n.apply(this, arguments) })), function(t) { return gr(t, r).value[e] } } var Cr = function(t, e) { var n; return ("number" == typeof e ? Mn : e instanceof Ke ? vn : (n = Ke(e)) ? (e = n, vn) : Ln)(t, e) }; function Nr(t) { return function() { this.removeAttribute(t) } } function Ir(t) { return function() { this.removeAttributeNS(t.space, t.local) } } function Lr(t, e, n) { var r, i, a = n + ""; return function() { var o = this.getAttribute(t); return o === a ? null : o === r ? i : i = e(r = o, n) } } function Br(t, e, n) { var r, i, a = n + ""; return function() { var o = this.getAttributeNS(t.space, t.local); return o === a ? null : o === r ? i : i = e(r = o, n) } } function Or(t, e, n) { var r, i, a; return function() { var o, s, u = n(this); if (null != u) return (o = this.getAttribute(t)) === (s = u + "") ? null : o === r && s === i ? a : (i = s, a = e(r = o, u)); this.removeAttribute(t) } } function Rr(t, e, n) { var r, i, a; return function() { var o, s, u = n(this); if (null != u) return (o = this.getAttributeNS(t.space, t.local)) === (s = u + "") ? null : o === r && s === i ? a : (i = s, a = e(r = o, u)); this.removeAttributeNS(t.space, t.local) } } function Pr(t, e) { var n, r; function i() { var i = e.apply(this, arguments); return i !== r && (n = (r = i) && function(t, e) { return function(n) { this.setAttributeNS(t.space, t.local, e.call(this, n)) } }(t, i)), n } return i._value = e, i } function Fr(t, e) { var n, r; function i() { var i = e.apply(this, arguments); return i !== r && (n = (r = i) && function(t, e) { return function(n) { this.setAttribute(t, e.call(this, n)) } }(t, i)), n } return i._value = e, i } function qr(t, e) { return function() { dr(this, t).delay = +e.apply(this, arguments) } } function jr(t, e) { return e = +e, function() { dr(this, t).delay = e } } function Ur(t, e) { return function() { pr(this, t).duration = +e.apply(this, arguments) } } function zr(t, e) { return e = +e, function() { pr(this, t).duration = e } } function Yr(t, e) { if ("function" != typeof e) throw new Error; return function() { pr(this, t).ease = e } } function Vr(t, e, n) { var r, i, a = function(t) { return (t + "").trim().split(/^|\s+/).every((function(t) { var e = t.indexOf("."); return e >= 0 && (t = t.slice(0, e)), !t || "start" === t })) }(e) ? dr : pr; return function() { var o = a(this, t), s = o.on; s !== r && (i = (r = s).copy()).on(e, n), o.on = i } } var Hr = Me.prototype.constructor; function Gr(t) { return function() { this.style.removeProperty(t) } } function $r(t, e, n) { var r, i; function a() { var a = e.apply(this, arguments); return a !== i && (r = (i = a) && function(t, e, n) { return function(r) { this.style.setProperty(t, e.call(this, r), n) } }(t, a, n)), r } return a._value = e, a } function Wr(t) { var e, n; function r() { var r = t.apply(this, arguments); return r !== n && (e = (n = r) && function(t) { return function(e) { this.textContent = t.call(this, e) } }(r)), e } return r._value = t, r } var Kr = 0; function Xr(t, e, n, r) { this._groups = t, this._parents = e, this._name = n, this._id = r } function Zr(t) { return Me().transition(t) } function Jr() { return ++Kr } var Qr = Me.prototype; function ti(t) { return t * t * t } function ei(t) { return --t * t * t + 1 } function ni(t) { return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2 } Xr.prototype = Zr.prototype = { constructor: Xr, select: function(t) { var e = this._name, n = this._id; "function" != typeof t && (t = bt(t)); for (var r = this._groups, i = r.length, a = new Array(i), o = 0; o < i; ++o) for (var s, u, c = r[o], f = c.length, l = a[o] = new Array(f), h = 0; h < f; ++h)(s = c[h]) && (u = t.call(s, s.__data__, h, c)) && ("__data__" in s && (u.__data__ = s.__data__), l[h] = u, hr(l[h], e, n, h, l, gr(s, n))); return new Xr(a, this._parents, e, n) }, selectAll: function(t) { var e = this._name, n = this._id; "function" != typeof t && (t = mt(t)); for (var r = this._groups, i = r.length, a = [], o = [], s = 0; s < i; ++s) for (var u, c = r[s], f = c.length, l = 0; l < f; ++l) if (u = c[l]) { for (var h, d = t.call(u, u.__data__, l, c), p = gr(u, n), g = 0, y = d.length; g < y; ++g)(h = d[g]) && hr(h, e, n, g, d, p); a.push(d), o.push(u) } return new Xr(a, o, e, n) }, filter: function(t) { "function" != typeof t && (t = _t(t)); for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) for (var a, o = e[i], s = o.length, u = r[i] = [], c = 0; c < s; ++c)(a = o[c]) && t.call(a, a.__data__, c, o) && u.push(a); return new Xr(r, this._parents, this._name, this._id) }, merge: function(t) { if (t._id !== this._id) throw new Error; for (var e = this._groups, n = t._groups, r = e.length, i = n.length, a = Math.min(r, i), o = new Array(r), s = 0; s < a; ++s) for (var u, c = e[s], f = n[s], l = c.length, h = o[s] = new Array(l), d = 0; d < l; ++d)(u = c[d] || f[d]) && (h[d] = u); for (; s < r; ++s) o[s] = e[s]; return new Xr(o, this._parents, this._name, this._id) }, selection: function() { return new Hr(this._groups, this._parents) }, transition: function() { for (var t = this._name, e = this._id, n = Jr(), r = this._groups, i = r.length, a = 0; a < i; ++a) for (var o, s = r[a], u = s.length, c = 0; c < u; ++c) if (o = s[c]) { var f = gr(o, e); hr(o, t, n, c, s, { time: f.time + f.delay + f.duration, delay: 0, duration: f.duration, ease: f.ease }) } return new Xr(r, this._parents, t, n) }, call: Qr.call, nodes: Qr.nodes, node: Qr.node, size: Qr.size, empty: Qr.empty, each: Qr.each, on: function(t, e) { var n = this._id; return arguments.length < 2 ? gr(this.node(), n).on.on(t) : this.each(Vr(n, t, e)) }, attr: function(t, e) { var n = Dt(t), r = "transform" === n ? Sr : Cr; return this.attrTween(t, "function" == typeof e ? (n.local ? Rr : Or)(n, r, Dr(this, "attr." + t, e)) : null == e ? (n.local ? Ir : Nr)(n) : (n.local ? Br : Lr)(n, r, e)) }, attrTween: function(t, e) { var n = "attr." + t; if (arguments.length < 2) return (n = this.tween(n)) && n._value; if (null == e) return this.tween(n, null); if ("function" != typeof e) throw new Error; var r = Dt(t); return this.tween(n, (r.local ? Pr : Fr)(r, e)) }, style: function(t, e, n) { var r = "transform" == (t += "") ? Ar : Cr; return null == e ? this.styleTween(t, function(t, e) { var n, r, i; return function() { var a = jt(this, t), o = (this.style.removeProperty(t), jt(this, t)); return a === o ? null : a === n && o === r ? i : i = e(n = a, r = o) } }(t, r)).on("end.style." + t, Gr(t)) : "function" == typeof e ? this.styleTween(t, function(t, e, n) { var r, i, a; return function() { var o = jt(this, t), s = n(this), u = s + ""; return null == s && (this.style.removeProperty(t), u = s = jt(this, t)), o === u ? null : o === r && u === i ? a : (i = u, a = e(r = o, s)) } }(t, r, Dr(this, "style." + t, e))).each(function(t, e) { var n, r, i, a, o = "style." + e, s = "end." + o; return function() { var u = pr(this, t), c = u.on, f = null == u.value[o] ? a || (a = Gr(e)) : void 0; c === n && i === f || (r = (n = c).copy()).on(s, i = f), u.on = r } }(this._id, t)) : this.styleTween(t, function(t, e, n) { var r, i, a = n + ""; return function() { var o = jt(this, t); return o === a ? null : o === r ? i : i = e(r = o, n) } }(t, r, e), n).on("end.style." + t, null) }, styleTween: function(t, e, n) { var r = "style." + (t += ""); if (arguments.length < 2) return (r = this.tween(r)) && r._value; if (null == e) return this.tween(r, null); if ("function" != typeof e) throw new Error; return this.tween(r, $r(t, e, null == n ? "" : n)) }, text: function(t) { return this.tween("text", "function" == typeof t ? function(t) { return function() { var e = t(this); this.textContent = null == e ? "" : e } }(Dr(this, "text", t)) : function(t) { return function() { this.textContent = t } }(null == t ? "" : t + "")) }, textTween: function(t) { var e = "text"; if (arguments.length < 1) return (e = this.tween(e)) && e._value; if (null == t) return this.tween(e, null); if ("function" != typeof t) throw new Error; return this.tween(e, Wr(t)) }, remove: function() { return this.on("end.remove", (t = this._id, function() { var e = this.parentNode; for (var n in this.__transition) if (+n !== t) return; e && e.removeChild(this) })); var t }, tween: function(t, e) { var n = this._id; if (t += "", arguments.length < 2) { for (var r, i = gr(this.node(), n).tween, a = 0, o = i.length; a < o; ++a) if ((r = i[a]).name === t) return r.value; return null } return this.each((null == e ? Mr : Tr)(n, t, e)) }, delay: function(t) { var e = this._id; return arguments.length ? this.each(("function" == typeof t ? qr : jr)(e, t)) : gr(this.node(), e).delay }, duration: function(t) { var e = this._id; return arguments.length ? this.each(("function" == typeof t ? Ur : zr)(e, t)) : gr(this.node(), e).duration }, ease: function(t) { var e = this._id; return arguments.length ? this.each(Yr(e, t)) : gr(this.node(), e).ease }, end: function() { var t, e, n = this, r = n._id, i = n.size(); return new Promise((function(a, o) { var s = { value: o }, u = { value: function() { 0 == --i && a() } }; n.each((function() { var n = pr(this, r), i = n.on; i !== t && ((e = (t = i).copy())._.cancel.push(s), e._.interrupt.push(s), e._.end.push(u)), n.on = e })) })) } }; var ri = { time: null, delay: 0, duration: 250, ease: ni }; function ii(t, e) { for (var n; !(n = t.__transition) || !(n = n[e]);) if (!(t = t.parentNode)) return ri.time = Wn(), ri; return n } Me.prototype.interrupt = function(t) { return this.each((function() { _r(this, t) })) }, Me.prototype.transition = function(t) { var e, n; t instanceof Xr ? (e = t._id, t = t._name) : (e = Jr(), (n = ri).time = Wn(), t = null == t ? null : t + ""); for (var r = this._groups, i = r.length, a = 0; a < i; ++a) for (var o, s = r[a], u = s.length, c = 0; c < u; ++c)(o = s[c]) && hr(o, t, e, c, s, n || ii(o, e)); return new Xr(r, this._parents, t, e) }; var ai = [null], oi = function(t, e) { var n, r, i = t.__transition; if (i) for (r in e = null == e ? null : e + "", i) if ((n = i[r]).state > or && n.name === e) return new Xr([ [t] ], ai, e, +r); return null }, si = function(t) { return function() { return t } }, ui = function(t, e, n) { this.target = t, this.type = e, this.selection = n }; function ci() { pe.stopImmediatePropagation() } var fi = function() { pe.preventDefault(), pe.stopImmediatePropagation() }, li = { name: "drag" }, hi = { name: "space" }, di = { name: "handle" }, pi = { name: "center" }; function gi(t) { return [+t[0], +t[1]] } function yi(t) { return [gi(t[0]), gi(t[1])] } var bi = { name: "x", handles: ["w", "e"].map(Ai), input: function(t, e) { return null == t ? null : [ [+t[0], e[0][1]], [+t[1], e[1][1]] ] }, output: function(t) { return t && [t[0][0], t[1][0]] } }, vi = { name: "y", handles: ["n", "s"].map(Ai), input: function(t, e) { return null == t ? null : [ [e[0][0], +t[0]], [e[1][0], +t[1]] ] }, output: function(t) { return t && [t[0][1], t[1][1]] } }, mi = { name: "xy", handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(Ai), input: function(t) { return null == t ? null : yi(t) }, output: function(t) { return t } }, _i = { overlay: "crosshair", selection: "move", n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" }, wi = { e: "w", w: "e", nw: "ne", ne: "nw", se: "sw", sw: "se" }, xi = { n: "s", s: "n", nw: "sw", ne: "se", se: "ne", sw: "nw" }, ki = { overlay: 1, selection: 1, n: null, e: 1, s: null, w: -1, nw: -1, ne: 1, se: 1, sw: -1 }, Ei = { overlay: 1, selection: 1, n: -1, e: null, s: 1, w: null, nw: -1, ne: -1, se: 1, sw: 1 }; function Ai(t) { return { type: t } } function Si() { return !pe.ctrlKey && !pe.button } function Mi() { var t = this.ownerSVGElement || this; return t.hasAttribute("viewBox") ? [ [(t = t.viewBox.baseVal).x, t.y], [t.x + t.width, t.y + t.height] ] : [ [0, 0], [t.width.baseVal.value, t.height.baseVal.value] ] } function Ti() { return navigator.maxTouchPoints || "ontouchstart" in this } function Di(t) { for (; !t.__brush;) if (!(t = t.parentNode)) return; return t.__brush } function Ci(t) { var e = t.__brush; return e ? e.dim.output(e.selection) : null } function Ni() { return Bi(bi) } function Ii() { return Bi(vi) } var Li = function() { return Bi(mi) }; function Bi(t) { var e, n = Mi, r = Si, i = Ti, a = !0, o = gt("start", "brush", "end"), s = 6; function u(e) { var n = e.property("__brush", g).selectAll(".overlay").data([Ai("overlay")]); n.enter().append("rect").attr("class", "overlay").attr("pointer-events", "all").attr("cursor", _i.overlay).merge(n).each((function() { var t = Di(this).extent; Te(this).attr("x", t[0][0]).attr("y", t[0][1]).attr("width", t[1][0] - t[0][0]).attr("height", t[1][1] - t[0][1]) })), e.selectAll(".selection").data([Ai("selection")]).enter().append("rect").attr("class", "selection").attr("cursor", _i.selection).attr("fill", "#777").attr("fill-opacity", .3).attr("stroke", "#fff").attr("shape-rendering", "crispEdges"); var r = e.selectAll(".handle").data(t.handles, (function(t) { return t.type })); r.exit().remove(), r.enter().append("rect").attr("class", (function(t) { return "handle handle--" + t.type })).attr("cursor", (function(t) { return _i[t.type] })), e.each(c).attr("fill", "none").attr("pointer-events", "all").on("mousedown.brush", h).filter(i).on("touchstart.brush", h).on("touchmove.brush", d).on("touchend.brush touchcancel.brush", p).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") } function c() { var t = Te(this), e = Di(this).selection; e ? (t.selectAll(".selection").style("display", null).attr("x", e[0][0]).attr("y", e[0][1]).attr("width", e[1][0] - e[0][0]).attr("height", e[1][1] - e[0][1]), t.selectAll(".handle").style("display", null).attr("x", (function(t) { return "e" === t.type[t.type.length - 1] ? e[1][0] - s / 2 : e[0][0] - s / 2 })).attr("y", (function(t) { return "s" === t.type[0] ? e[1][1] - s / 2 : e[0][1] - s / 2 })).attr("width", (function(t) { return "n" === t.type || "s" === t.type ? e[1][0] - e[0][0] + s : s })).attr("height", (function(t) { return "e" === t.type || "w" === t.type ? e[1][1] - e[0][1] + s : s }))) : t.selectAll(".selection,.handle").style("display", "none").attr("x", null).attr("y", null).attr("width", null).attr("height", null) } function f(t, e, n) { return !n && t.__brush.emitter || new l(t, e) } function l(t, e) { this.that = t, this.args = e, this.state = t.__brush, this.active = 0 } function h() { if ((!e || pe.touches) && r.apply(this, arguments)) { var n, i, o, s, u, l, h, d, p, g, y, b, v = this, m = pe.target.__data__.type, _ = "selection" === (a && pe.metaKey ? m = "overlay" : m) ? li : a && pe.altKey ? pi : di, w = t === vi ? null : ki[m], x = t === bi ? null : Ei[m], k = Di(v), E = k.extent, A = k.selection, S = E[0][0], M = E[0][1], T = E[1][0], D = E[1][1], C = 0, N = 0, I = w && x && a && pe.shiftKey, L = pe.touches ? (b = pe.changedTouches[0].identifier, function(t) { return Pn(t, pe.touches, b) }) : Fn, B = L(v), O = B, R = f(v, arguments, !0).beforestart(); "overlay" === m ? (A && (p = !0), k.selection = A = [ [n = t === vi ? S : B[0], o = t === bi ? M : B[1]], [u = t === vi ? T : n, h = t === bi ? D : o] ]) : (n = A[0][0], o = A[0][1], u = A[1][0], h = A[1][1]), i = n, s = o, l = u, d = h; var P = Te(v).attr("pointer-events", "none"), F = P.selectAll(".overlay").attr("cursor", _i[m]); if (pe.touches) R.moved = j, R.ended = z; else { var q = Te(pe.view).on("mousemove.brush", j, !0).on("mouseup.brush", z, !0); a && q.on("keydown.brush", (function() { switch (pe.keyCode) { case 16: I = w && x; break; case 18: _ === di && (w && (u = l - C * w, n = i + C * w), x && (h = d - N * x, o = s + N * x), _ = pi, U()); break; case 32: _ !== di && _ !== pi || (w < 0 ? u = l - C : w > 0 && (n = i - C), x < 0 ? h = d - N : x > 0 && (o = s - N), _ = hi, F.attr("cursor", _i.selection), U()); break; default: return } fi() }), !0).on("keyup.brush", (function() { switch (pe.keyCode) { case 16: I && (g = y = I = !1, U()); break; case 18: _ === pi && (w < 0 ? u = l : w > 0 && (n = i), x < 0 ? h = d : x > 0 && (o = s), _ = di, U()); break; case 32: _ === hi && (pe.altKey ? (w && (u = l - C * w, n = i + C * w), x && (h = d - N * x, o = s + N * x), _ = pi) : (w < 0 ? u = l : w > 0 && (n = i), x < 0 ? h = d : x > 0 && (o = s), _ = di), F.attr("cursor", _i[m]), U()); break; default: return } fi() }), !0), Ne(pe.view) } ci(), _r(v), c.call(v), R.start() } function j() { var t = L(v); !I || g || y || (Math.abs(t[0] - O[0]) > Math.abs(t[1] - O[1]) ? y = !0 : g = !0), O = t, p = !0, fi(), U() } function U() { var t; switch (C = O[0] - B[0], N = O[1] - B[1], _) { case hi: case li: w && (C = Math.max(S - n, Math.min(T - u, C)), i = n + C, l = u + C), x && (N = Math.max(M - o, Math.min(D - h, N)), s = o + N, d = h + N); break; case di: w < 0 ? (C = Math.max(S - n, Math.min(T - n, C)), i = n + C, l = u) : w > 0 && (C = Math.max(S - u, Math.min(T - u, C)), i = n, l = u + C), x < 0 ? (N = Math.max(M - o, Math.min(D - o, N)), s = o + N, d = h) : x > 0 && (N = Math.max(M - h, Math.min(D - h, N)), s = o, d = h + N); break; case pi: w && (i = Math.max(S, Math.min(T, n - C * w)), l = Math.max(S, Math.min(T, u + C * w))), x && (s = Math.max(M, Math.min(D, o - N * x)), d = Math.max(M, Math.min(D, h + N * x))) } l < i && (w *= -1, t = n, n = u, u = t, t = i, i = l, l = t, m in wi && F.attr("cursor", _i[m = wi[m]])), d < s && (x *= -1, t = o, o = h, h = t, t = s, s = d, d = t, m in xi && F.attr("cursor", _i[m = xi[m]])), k.selection && (A = k.selection), g && (i = A[0][0], l = A[1][0]), y && (s = A[0][1], d = A[1][1]), A[0][0] === i && A[0][1] === s && A[1][0] === l && A[1][1] === d || (k.selection = [ [i, s], [l, d] ], c.call(v), R.brush()) } function z() { if (ci(), pe.touches) { if (pe.touches.length) return; e && clearTimeout(e), e = setTimeout((function() { e = null }), 500) } else Ie(pe.view, p), q.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); P.attr("pointer-events", "all"), F.attr("cursor", _i.overlay), k.selection && (A = k.selection), function(t) { return t[0][0] === t[1][0] || t[0][1] === t[1][1] }(A) && (k.selection = null, c.call(v)), R.end() } } function d() { f(this, arguments).moved() } function p() { f(this, arguments).ended() } function g() { var e = this.__brush || { selection: null }; return e.extent = yi(n.apply(this, arguments)), e.dim = t, e } return u.move = function(e, n) { e.selection ? e.on("start.brush", (function() { f(this, arguments).beforestart().start() })).on("interrupt.brush end.brush", (function() { f(this, arguments).end() })).tween("brush", (function() { var e = this, r = e.__brush, i = f(e, arguments), a = r.selection, o = t.input("function" == typeof n ? n.apply(this, arguments) : n, r.extent), s = Bn(a, o); function u(t) { r.selection = 1 === t && null === o ? null : s(t), c.call(e), i.brush() } return null !== a && null !== o ? u : u(1) })) : e.each((function() { var e = this, r = arguments, i = e.__brush, a = t.input("function" == typeof n ? n.apply(e, r) : n, i.extent), o = f(e, r).beforestart(); _r(e), i.selection = null === a ? null : a, c.call(e), o.start().brush().end() })) }, u.clear = function(t) { u.move(t, null) }, l.prototype = { beforestart: function() { return 1 == ++this.active && (this.state.emitter = this, this.starting = !0), this }, start: function() { return this.starting ? (this.starting = !1, this.emit("start")) : this.emit("brush"), this }, brush: function() { return this.emit("brush"), this }, end: function() { return 0 == --this.active && (delete this.state.emitter, this.emit("end")), this }, emit: function(e) { _e(new ui(u, e, t.output(this.state.selection)), o.apply, o, [e, this.that, this.args]) } }, u.extent = function(t) { return arguments.length ? (n = "function" == typeof t ? t : si(yi(t)), u) : n }, u.filter = function(t) { return arguments.length ? (r = "function" == typeof t ? t : si(!!t), u) : r }, u.touchable = function(t) { return arguments.length ? (i = "function" == typeof t ? t : si(!!t), u) : i }, u.handleSize = function(t) { return arguments.length ? (s = +t, u) : s }, u.keyModifiers = function(t) { return arguments.length ? (a = !!t, u) : a }, u.on = function() { var t = o.on.apply(o, arguments); return t === o ? u : t }, u } var Oi = Math.cos, Ri = Math.sin, Pi = Math.PI, Fi = Pi / 2, qi = 2 * Pi, ji = Math.max; function Ui(t) { return function(e, n) { return t(e.source.value + e.target.value, n.source.value + n.target.value) } } var zi = function() { var t = 0, e = null, n = null, r = null; function i(i) { var a, o, s, u, c, f, l = i.length, h = [], d = x(l), p = [], g = [], y = g.groups = new Array(l), b = new Array(l * l); for (a = 0, c = -1; ++c < l;) { for (o = 0, f = -1; ++f < l;) o += i[c][f]; h.push(o), p.push(x(l)), a += o } for (e && d.sort((function(t, n) { return e(h[t], h[n]) })), n && p.forEach((function(t, e) { t.sort((function(t, r) { return n(i[e][t], i[e][r]) })) })), u = (a = ji(0, qi - t * l) / a) ? t : qi / l, o = 0, c = -1; ++c < l;) { for (s = o, f = -1; ++f < l;) { var v = d[c], m = p[v][f], _ = i[v][m], w = o, k = o += _ * a; b[m * l + v] = { index: v, subindex: m, startAngle: w, endAngle: k, value: _ } } y[v] = { index: v, startAngle: s, endAngle: o, value: h[v] }, o += u } for (c = -1; ++c < l;) for (f = c - 1; ++f < l;) { var E = b[f * l + c], A = b[c * l + f]; (E.value || A.value) && g.push(E.value < A.value ? { source: A, target: E } : { source: E, target: A }) } return r ? g.sort(r) : g } return i.padAngle = function(e) { return arguments.length ? (t = ji(0, e), i) : t }, i.sortGroups = function(t) { return arguments.length ? (e = t, i) : e }, i.sortSubgroups = function(t) { return arguments.length ? (n = t, i) : n }, i.sortChords = function(t) { return arguments.length ? (null == t ? r = null : (r = Ui(t))._ = t, i) : r && r._ }, i }, Yi = Array.prototype.slice, Vi = function(t) { return function() { return t } }, Hi = Math.PI, Gi = 2 * Hi, $i = Gi - 1e-6; function Wi() { this._x0 = this._y0 = this._x1 = this._y1 = null, this._ = "" } function Ki() { return new Wi } Wi.prototype = Ki.prototype = { constructor: Wi, moveTo: function(t, e) { this._ += "M" + (this._x0 = this._x1 = +t) + "," + (this._y0 = this._y1 = +e) }, closePath: function() { null !== this._x1 && (this._x1 = this._x0, this._y1 = this._y0, this._ += "Z") }, lineTo: function(t, e) { this._ += "L" + (this._x1 = +t) + "," + (this._y1 = +e) }, quadraticCurveTo: function(t, e, n, r) { this._ += "Q" + +t + "," + +e + "," + (this._x1 = +n) + "," + (this._y1 = +r) }, bezierCurveTo: function(t, e, n, r, i, a) { this._ += "C" + +t + "," + +e + "," + +n + "," + +r + "," + (this._x1 = +i) + "," + (this._y1 = +a) }, arcTo: function(t, e, n, r, i) { t = +t, e = +e, n = +n, r = +r, i = +i; var a = this._x1, o = this._y1, s = n - t, u = r - e, c = a - t, f = o - e, l = c * c + f * f; if (i < 0) throw new Error("negative radius: " + i); if (null === this._x1) this._ += "M" + (this._x1 = t) + "," + (this._y1 = e); else if (l > 1e-6) if (Math.abs(f * s - u * c) > 1e-6 && i) { var h = n - a, d = r - o, p = s * s + u * u, g = h * h + d * d, y = Math.sqrt(p), b = Math.sqrt(l), v = i * Math.tan((Hi - Math.acos((p + l - g) / (2 * y * b))) / 2), m = v / b, _ = v / y; Math.abs(m - 1) > 1e-6 && (this._ += "L" + (t + m * c) + "," + (e + m * f)), this._ += "A" + i + "," + i + ",0,0," + +(f * h > c * d) + "," + (this._x1 = t + _ * s) + "," + (this._y1 = e + _ * u) } else this._ += "L" + (this._x1 = t) + "," + (this._y1 = e); else; }, arc: function(t, e, n, r, i, a) { t = +t, e = +e, a = !!a; var o = (n = +n) * Math.cos(r), s = n * Math.sin(r), u = t + o, c = e + s, f = 1 ^ a, l = a ? r - i : i - r; if (n < 0) throw new Error("negative radius: " + n); null === this._x1 ? this._ += "M" + u + "," + c : (Math.abs(this._x1 - u) > 1e-6 || Math.abs(this._y1 - c) > 1e-6) && (this._ += "L" + u + "," + c), n && (l < 0 && (l = l % Gi + Gi), l > $i ? this._ += "A" + n + "," + n + ",0,1," + f + "," + (t - o) + "," + (e - s) + "A" + n + "," + n + ",0,1," + f + "," + (this._x1 = u) + "," + (this._y1 = c) : l > 1e-6 && (this._ += "A" + n + "," + n + ",0," + +(l >= Hi) + "," + f + "," + (this._x1 = t + n * Math.cos(i)) + "," + (this._y1 = e + n * Math.sin(i)))) }, rect: function(t, e, n, r) { this._ += "M" + (this._x0 = this._x1 = +t) + "," + (this._y0 = this._y1 = +e) + "h" + +n + "v" + +r + "h" + -n + "Z" }, toString: function() { return this._ } }; var Xi = Ki; function Zi(t) { return t.source } function Ji(t) { return t.target } function Qi(t) { return t.radius } function ta(t) { return t.startAngle } function ea(t) { return t.endAngle } var na = function() { var t = Zi, e = Ji, n = Qi, r = ta, i = ea, a = null; function o() { var o, s = Yi.call(arguments), u = t.apply(this, s), c = e.apply(this, s), f = +n.apply(this, (s[0] = u, s)), l = r.apply(this, s) - Fi, h = i.apply(this, s) - Fi, d = f * Oi(l), p = f * Ri(l), g = +n.apply(this, (s[0] = c, s)), y = r.apply(this, s) - Fi, b = i.apply(this, s) - Fi; if (a || (a = o = Xi()), a.moveTo(d, p), a.arc(0, 0, f, l, h), l === y && h === b || (a.quadraticCurveTo(0, 0, g * Oi(y), g * Ri(y)), a.arc(0, 0, g, y, b)), a.quadraticCurveTo(0, 0, d, p), a.closePath(), o) return a = null, o + "" || null } return o.radius = function(t) { return arguments.length ? (n = "function" == typeof t ? t : Vi(+t), o) : n }, o.startAngle = function(t) { return arguments.length ? (r = "function" == typeof t ? t : Vi(+t), o) : r }, o.endAngle = function(t) { return arguments.length ? (i = "function" == typeof t ? t : Vi(+t), o) : i }, o.source = function(e) { return arguments.length ? (t = e, o) : t }, o.target = function(t) { return arguments.length ? (e = t, o) : e }, o.context = function(t) { return arguments.length ? (a = null == t ? null : t, o) : a }, o }; function ra() {} function ia(t, e) { var n = new ra; if (t instanceof ra) t.each((function(t, e) { n.set(e, t) })); else if (Array.isArray(t)) { var r, i = -1, a = t.length; if (null == e) for (; ++i < a;) n.set(i, t[i]); else for (; ++i < a;) n.set(e(r = t[i], i, t), r) } else if (t) for (var o in t) n.set(o, t[o]); return n } ra.prototype = ia.prototype = { constructor: ra, has: function(t) { return "$" + t in this }, get: function(t) { return this["$" + t] }, set: function(t, e) { return this["$" + t] = e, this }, remove: function(t) { var e = "$" + t; return e in this && delete this[e] }, clear: function() { for (var t in this) "$" === t[0] && delete this[t] }, keys: function() { var t = []; for (var e in this) "$" === e[0] && t.push(e.slice(1)); return t }, values: function() { var t = []; for (var e in this) "$" === e[0] && t.push(this[e]); return t }, entries: function() { var t = []; for (var e in this) "$" === e[0] && t.push({ key: e.slice(1), value: this[e] }); return t }, size: function() { var t = 0; for (var e in this) "$" === e[0] && ++t; return t }, empty: function() { for (var t in this) if ("$" === t[0]) return !1; return !0 }, each: function(t) { for (var e in this) "$" === e[0] && t(this[e], e.slice(1), this) } }; var aa = ia, oa = function() { var t, e, n, r = [], i = []; function a(n, i, o, s) { if (i >= r.length) return null != t && n.sort(t), null != e ? e(n) : n; for (var u, c, f, l = -1, h = n.length, d = r[i++], p = aa(), g = o(); ++l < h;)(f = p.get(u = d(c = n[l]) + "")) ? f.push(c) : p.set(u, [c]); return p.each((function(t, e) { s(g, e, a(t, i, o, s)) })), g } return n = { object: function(t) { return a(t, 0, sa, ua) }, map: function(t) { return a(t, 0, ca, fa) }, entries: function(t) { return function t(n, a) { if (++a > r.length) return n; var o, s = i[a - 1]; return null != e && a >= r.length ? o = n.entries() : (o = [], n.each((function(e, n) { o.push({ key: n, values: t(e, a) }) }))), null != s ? o.sort((function(t, e) { return s(t.key, e.key) })) : o }(a(t, 0, ca, fa), 0) }, key: function(t) { return r.push(t), n }, sortKeys: function(t) { return i[r.length - 1] = t, n }, sortValues: function(e) { return t = e, n }, rollup: function(t) { return e = t, n } } }; function sa() { return {} } function ua(t, e, n) { t[e] = n } function ca() { return aa() } function fa(t, e, n) { t.set(e, n) } function la() {} var ha = aa.prototype; function da(t, e) { var n = new la; if (t instanceof la) t.each((function(t) { n.add(t) })); else if (t) { var r = -1, i = t.length; if (null == e) for (; ++r < i;) n.add(t[r]); else for (; ++r < i;) n.add(e(t[r], r, t)) } return n } la.prototype = da.prototype = { constructor: la, has: ha.has, add: function(t) { return this["$" + (t += "")] = t, this }, remove: ha.remove, clear: ha.clear, values: ha.keys, size: ha.size, empty: ha.empty, each: ha.each }; var pa = da, ga = function(t) { var e = []; for (var n in t) e.push(n); return e }, ya = function(t) { var e = []; for (var n in t) e.push(t[n]); return e }, ba = function(t) { var e = []; for (var n in t) e.push({ key: n, value: t[n] }); return e }, va = Math.PI / 180, ma = 180 / Math.PI, _a = .96422, wa = 1, xa = .82521, ka = 4 / 29, Ea = 6 / 29, Aa = 3 * Ea * Ea, Sa = Ea * Ea * Ea; function Ma(t) { if (t instanceof Ca) return new Ca(t.l, t.a, t.b, t.opacity); if (t instanceof Fa) return qa(t); t instanceof tn || (t = Je(t)); var e, n, r = Ba(t.r), i = Ba(t.g), a = Ba(t.b), o = Na((.2225045 * r + .7168786 * i + .0606169 * a) / wa); return r === i && i === a ? e = n = o : (e = Na((.4360747 * r + .3850649 * i + .1430804 * a) / _a), n = Na((.0139322 * r + .0971045 * i + .7141733 * a) / xa)), new Ca(116 * o - 16, 500 * (e - o), 200 * (o - n), t.opacity) } function Ta(t, e) { return new Ca(t, 0, 0, null == e ? 1 : e) } function Da(t, e, n, r) { return 1 === arguments.length ? Ma(t) : new Ca(t, e, n, null == r ? 1 : r) } function Ca(t, e, n, r) { this.l = +t, this.a = +e, this.b = +n, this.opacity = +r } function Na(t) { return t > Sa ? Math.pow(t, 1 / 3) : t / Aa + ka } function Ia(t) { return t > Ea ? t * t * t : Aa * (t - ka) } function La(t) { return 255 * (t <= .0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055) } function Ba(t) { return (t /= 255) <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4) } function Oa(t) { if (t instanceof Fa) return new Fa(t.h, t.c, t.l, t.opacity); if (t instanceof Ca || (t = Ma(t)), 0 === t.a && 0 === t.b) return new Fa(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity); var e = Math.atan2(t.b, t.a) * ma; return new Fa(e < 0 ? e + 360 : e, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity) } function Ra(t, e, n, r) { return 1 === arguments.length ? Oa(t) : new Fa(n, e, t, null == r ? 1 : r) } function Pa(t, e, n, r) { return 1 === arguments.length ? Oa(t) : new Fa(t, e, n, null == r ? 1 : r) } function Fa(t, e, n, r) { this.h = +t, this.c = +e, this.l = +n, this.opacity = +r } function qa(t) { if (isNaN(t.h)) return new Ca(t.l, 0, 0, t.opacity); var e = t.h * va; return new Ca(t.l, Math.cos(e) * t.c, Math.sin(e) * t.c, t.opacity) } Le(Ca, Da, Be(Oe, { brighter: function(t) { return new Ca(this.l + 18 * (null == t ? 1 : t), this.a, this.b, this.opacity) }, darker: function(t) { return new Ca(this.l - 18 * (null == t ? 1 : t), this.a, this.b, this.opacity) }, rgb: function() { var t = (this.l + 16) / 116, e = isNaN(this.a) ? t : t + this.a / 500, n = isNaN(this.b) ? t : t - this.b / 200; return new tn(La(3.1338561 * (e = _a * Ia(e)) - 1.6168667 * (t = wa * Ia(t)) - .4906146 * (n = xa * Ia(n))), La(-.9787684 * e + 1.9161415 * t + .033454 * n), La(.0719453 * e - .2289914 * t + 1.4052427 * n), this.opacity) } })), Le(Fa, Pa, Be(Oe, { brighter: function(t) { return new Fa(this.h, this.c, this.l + 18 * (null == t ? 1 : t), this.opacity) }, darker: function(t) { return new Fa(this.h, this.c, this.l - 18 * (null == t ? 1 : t), this.opacity) }, rgb: function() { return qa(this).rgb() } })); var ja = -.29227, Ua = -.90649, za = 1.97294, Ya = za * Ua, Va = 1.78277 * za, Ha = 1.78277 * ja - -.14861 * Ua; function Ga(t, e, n, r) { return 1 === arguments.length ? function(t) { if (t instanceof $a) return new $a(t.h, t.s, t.l, t.opacity); t instanceof tn || (t = Je(t)); var e = t.r / 255, n = t.g / 255, r = t.b / 255, i = (Ha * r + Ya * e - Va * n) / (Ha + Ya - Va), a = r - i, o = (za * (n - i) - ja * a) / Ua, s = Math.sqrt(o * o + a * a) / (za * i * (1 - i)), u = s ? Math.atan2(o, a) * ma - 120 : NaN; return new $a(u < 0 ? u + 360 : u, s, i, t.opacity) }(t) : new $a(t, e, n, null == r ? 1 : r) } function $a(t, e, n, r) { this.h = +t, this.s = +e, this.l = +n, this.opacity = +r } Le($a, Ga, Be(Oe, { brighter: function(t) { return t = null == t ? 1 / .7 : Math.pow(1 / .7, t), new $a(this.h, this.s, this.l * t, this.opacity) }, darker: function(t) { return t = null == t ? .7 : Math.pow(.7, t), new $a(this.h, this.s, this.l * t, this.opacity) }, rgb: function() { var t = isNaN(this.h) ? 0 : (this.h + 120) * va, e = +this.l, n = isNaN(this.s) ? 0 : this.s * e * (1 - e), r = Math.cos(t), i = Math.sin(t); return new tn(255 * (e + n * (-.14861 * r + 1.78277 * i)), 255 * (e + n * (ja * r + Ua * i)), 255 * (e + n * (za * r)), this.opacity) } })); var Wa = Array.prototype.slice, Ka = function(t, e) { return t - e }, Xa = function(t) { for (var e = 0, n = t.length, r = t[n - 1][1] * t[0][0] - t[n - 1][0] * t[0][1]; ++e < n;) r += t[e - 1][1] * t[e][0] - t[e - 1][0] * t[e][1]; return r }, Za = function(t) { return function() { return t } }, Ja = function(t, e) { for (var n, r = -1, i = e.length; ++r < i;) if (n = Qa(t, e[r])) return n; return 0 }; function Qa(t, e) { for (var n = e[0], r = e[1], i = -1, a = 0, o = t.length, s = o - 1; a < o; s = a++) { var u = t[a], c = u[0], f = u[1], l = t[s], h = l[0], d = l[1]; if (to(u, l, e)) return 0; f > r != d > r && n < (h - c) * (r - f) / (d - f) + c && (i = -i) } return i } function to(t, e, n) { var r, i, a, o; return function(t, e, n) { return (e[0] - t[0]) * (n[1] - t[1]) == (n[0] - t[0]) * (e[1] - t[1]) }(t, e, n) && (i = t[r = +(t[0] === e[0])], a = n[r], o = e[r], i <= a && a <= o || o <= a && a <= i) } var eo = function() {}, no = [ [], [ [ [1, 1.5], [.5, 1] ] ], [ [ [1.5, 1], [1, 1.5] ] ], [ [ [1.5, 1], [.5, 1] ] ], [ [ [1, .5], [1.5, 1] ] ], [ [ [1, 1.5], [.5, 1] ], [ [1, .5], [1.5, 1] ] ], [ [ [1, .5], [1, 1.5] ] ], [ [ [1, .5], [.5, 1] ] ], [ [ [.5, 1], [1, .5] ] ], [ [ [1, 1.5], [1, .5] ] ], [ [ [.5, 1], [1, .5] ], [ [1.5, 1], [1, 1.5] ] ], [ [ [1.5, 1], [1, .5] ] ], [ [ [.5, 1], [1.5, 1] ] ], [ [ [1, 1.5], [1.5, 1] ] ], [ [ [.5, 1], [1, 1.5] ] ], [] ], ro = function() { var t = 1, e = 1, n = D, r = s; function i(t) { var e = n(t); if (Array.isArray(e)) e = e.slice().sort(Ka); else { var r = y(t), i = r[0], o = r[1]; e = T(i, o, e), e = x(Math.floor(i / e) * e, Math.floor(o / e) * e, e) } return e.map((function(e) { return a(t, e) })) } function a(n, i) { var a = [], s = []; return function(n, r, i) { var a, s, u, c, f, l, h = new Array, d = new Array; a = s = -1, c = n[0] >= r, no[c << 1].forEach(p); for (; ++a < t - 1;) u = c, c = n[a + 1] >= r, no[u | c << 1].forEach(p); no[c << 0].forEach(p); for (; ++s < e - 1;) { for (a = -1, c = n[s * t + t] >= r, f = n[s * t] >= r, no[c << 1 | f << 2].forEach(p); ++a < t - 1;) u = c, c = n[s * t + t + a + 1] >= r, l = f, f = n[s * t + a + 1] >= r, no[u | c << 1 | f << 2 | l << 3].forEach(p); no[c | f << 3].forEach(p) } a = -1, f = n[s * t] >= r, no[f << 2].forEach(p); for (; ++a < t - 1;) l = f, f = n[s * t + a + 1] >= r, no[f << 2 | l << 3].forEach(p); function p(t) { var e, n, r = [t[0][0] + a, t[0][1] + s], u = [t[1][0] + a, t[1][1] + s], c = o(r), f = o(u); (e = d[c]) ? (n = h[f]) ? (delete d[e.end], delete h[n.start], e === n ? (e.ring.push(u), i(e.ring)) : h[e.start] = d[n.end] = { start: e.start, end: n.end, ring: e.ring.concat(n.ring) }) : (delete d[e.end], e.ring.push(u), d[e.end = f] = e) : (e = h[f]) ? (n = d[c]) ? (delete h[e.start], delete d[n.end], e === n ? (e.ring.push(u), i(e.ring)) : h[n.start] = d[e.end] = { start: n.start, end: e.end, ring: n.ring.concat(e.ring) }) : (delete h[e.start], e.ring.unshift(r), h[e.start = c] = e) : h[c] = d[f] = { start: c, end: f, ring: [r, u] } } no[f << 3].forEach(p) }(n, i, (function(t) { r(t, n, i), Xa(t) > 0 ? a.push([t]) : s.push(t) })), s.forEach((function(t) { for (var e, n = 0, r = a.length; n < r; ++n) if (-1 !== Ja((e = a[n])[0], t)) return void e.push(t) })), { type: "MultiPolygon", value: i, coordinates: a } } function o(e) { return 2 * e[0] + e[1] * (t + 1) * 4 } function s(n, r, i) { n.forEach((function(n) { var a, o = n[0], s = n[1], u = 0 | o, c = 0 | s, f = r[c * t + u]; o > 0 && o < t && u === o && (a = r[c * t + u - 1], n[0] = o + (i - a) / (f - a) - .5), s > 0 && s < e && c === s && (a = r[(c - 1) * t + u], n[1] = s + (i - a) / (f - a) - .5) })) } return i.contour = a, i.size = function(n) { if (!arguments.length) return [t, e]; var r = Math.ceil(n[0]), a = Math.ceil(n[1]); if (!(r > 0 && a > 0)) throw new Error("invalid size"); return t = r, e = a, i }, i.thresholds = function(t) { return arguments.length ? (n = "function" == typeof t ? t : Array.isArray(t) ? Za(Wa.call(t)) : Za(t), i) : n }, i.smooth = function(t) { return arguments.length ? (r = t ? s : eo, i) : r === s }, i }; function io(t, e, n) { for (var r = t.width, i = t.height, a = 1 + (n << 1), o = 0; o < i; ++o) for (var s = 0, u = 0; s < r + n; ++s) s < r && (u += t.data[s + o * r]), s >= n && (s >= a && (u -= t.data[s - a + o * r]), e.data[s - n + o * r] = u / Math.min(s + 1, r - 1 + a - s, a)) } function ao(t, e, n) { for (var r = t.width, i = t.height, a = 1 + (n << 1), o = 0; o < r; ++o) for (var s = 0, u = 0; s < i + n; ++s) s < i && (u += t.data[o + s * r]), s >= n && (s >= a && (u -= t.data[o + (s - a) * r]), e.data[o + (s - n) * r] = u / Math.min(s + 1, i - 1 + a - s, a)) } function oo(t) { return t[0] } function so(t) { return t[1] } function uo() { return 1 } var co = function() { var t = oo, e = so, n = uo, r = 960, i = 500, a = 20, o = 2, s = 3 * a, u = r + 2 * s >> o, c = i + 2 * s >> o, f = Za(20); function l(r) { var i = new Float32Array(u * c), l = new Float32Array(u * c); r.forEach((function(r, a, f) { var l = +t(r, a, f) + s >> o, h = +e(r, a, f) + s >> o, d = +n(r, a, f); l >= 0 && l < u && h >= 0 && h < c && (i[l + h * u] += d) })), io({ width: u, height: c, data: i }, { width: u, height: c, data: l }, a >> o), ao({ width: u, height: c, data: l }, { width: u, height: c, data: i }, a >> o), io({ width: u, height: c, data: i }, { width: u, height: c, data: l }, a >> o), ao({ width: u, height: c, data: l }, { width: u, height: c, data: i }, a >> o), io({ width: u, height: c, data: i }, { width: u, height: c, data: l }, a >> o), ao({ width: u, height: c, data: l }, { width: u, height: c, data: i }, a >> o); var d = f(i); if (!Array.isArray(d)) { var p = B(i); d = T(0, p, d), (d = x(0, Math.floor(p / d) * d, d)).shift() } return ro().thresholds(d).size([u, c])(i).map(h) } function h(t) { return t.value *= Math.pow(2, -2 * o), t.coordinates.forEach(d), t } function d(t) { t.forEach(p) } function p(t) { t.forEach(g) } function g(t) { t[0] = t[0] * Math.pow(2, o) - s, t[1] = t[1] * Math.pow(2, o) - s } function y() { return u = r + 2 * (s = 3 * a) >> o, c = i + 2 * s >> o, l } return l.x = function(e) { return arguments.length ? (t = "function" == typeof e ? e : Za(+e), l) : t }, l.y = function(t) { return arguments.length ? (e = "function" == typeof t ? t : Za(+t), l) : e }, l.weight = function(t) { return arguments.length ? (n = "function" == typeof t ? t : Za(+t), l) : n }, l.size = function(t) { if (!arguments.length) return [r, i]; var e = Math.ceil(t[0]), n = Math.ceil(t[1]); if (!(e >= 0 || e >= 0)) throw new Error("invalid size"); return r = e, i = n, y() }, l.cellSize = function(t) { if (!arguments.length) return 1 << o; if (!((t = +t) >= 1)) throw new Error("invalid cell size"); return o = Math.floor(Math.log(t) / Math.LN2), y() }, l.thresholds = function(t) { return arguments.length ? (f = "function" == typeof t ? t : Array.isArray(t) ? Za(Wa.call(t)) : Za(t), l) : f }, l.bandwidth = function(t) { if (!arguments.length) return Math.sqrt(a * (a + 1)); if (!((t = +t) >= 0)) throw new Error("invalid bandwidth"); return a = Math.round((Math.sqrt(4 * t * t + 1) - 1) / 2), y() }, l }, fo = function(t) { return function() { return t } }; function lo(t, e, n, r, i, a, o, s, u, c) { this.target = t, this.type = e, this.subject = n, this.identifier = r, this.active = i, this.x = a, this.y = o, this.dx = s, this.dy = u, this._ = c } function ho() { return !pe.ctrlKey && !pe.button } function po() { return this.parentNode } function go(t) { return null == t ? { x: pe.x, y: pe.y } : t } function yo() { return navigator.maxTouchPoints || "ontouchstart" in this } lo.prototype.on = function() { var t = this._.on.apply(this._, arguments); return t === this._ ? this : t }; var bo = function() { var t, e, n, r, i = ho, a = po, o = go, s = yo, u = {}, c = gt("start", "drag", "end"), f = 0, l = 0; function h(t) { t.on("mousedown.drag", d).filter(s).on("touchstart.drag", y).on("touchmove.drag", b).on("touchend.drag touchcancel.drag", v).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") } function d() { if (!r && i.apply(this, arguments)) { var o = m("mouse", a.apply(this, arguments), Fn, this, arguments); o && (Te(pe.view).on("mousemove.drag", p, !0).on("mouseup.drag", g, !0), Ne(pe.view), De(), n = !1, t = pe.clientX, e = pe.clientY, o("start")) } } function p() { if (Ce(), !n) { var r = pe.clientX - t, i = pe.clientY - e; n = r * r + i * i > l } u.mouse("drag") } function g() { Te(pe.view).on("mousemove.drag mouseup.drag", null), Ie(pe.view, n), Ce(), u.mouse("end") } function y() { if (i.apply(this, arguments)) { var t, e, n = pe.changedTouches, r = a.apply(this, arguments), o = n.length; for (t = 0; t < o; ++t)(e = m(n[t].identifier, r, Pn, this, arguments)) && (De(), e("start")) } } function b() { var t, e, n = pe.changedTouches, r = n.length; for (t = 0; t < r; ++t)(e = u[n[t].identifier]) && (Ce(), e("drag")) } function v() { var t, e, n = pe.changedTouches, i = n.length; for (r && clearTimeout(r), r = setTimeout((function() { r = null }), 500), t = 0; t < i; ++t)(e = u[n[t].identifier]) && (De(), e("end")) } function m(t, e, n, r, i) { var a, s, l, d = n(e, t), p = c.copy(); if (_e(new lo(h, "beforestart", a, t, f, d[0], d[1], 0, 0, p), (function() { return null != (pe.subject = a = o.apply(r, i)) && (s = a.x - d[0] || 0, l = a.y - d[1] || 0, !0) }))) return function o(c) { var g, y = d; switch (c) { case "start": u[t] = o, g = f++; break; case "end": delete u[t], --f; case "drag": d = n(e, t), g = f } _e(new lo(h, c, a, t, g, d[0] + s, d[1] + l, d[0] - y[0], d[1] - y[1], p), p.apply, p, [c, r, i]) } } return h.filter = function(t) { return arguments.length ? (i = "function" == typeof t ? t : fo(!!t), h) : i }, h.container = function(t) { return arguments.length ? (a = "function" == typeof t ? t : fo(t), h) : a }, h.subject = function(t) { return arguments.length ? (o = "function" == typeof t ? t : fo(t), h) : o }, h.touchable = function(t) { return arguments.length ? (s = "function" == typeof t ? t : fo(!!t), h) : s }, h.on = function() { var t = c.on.apply(c, arguments); return t === c ? h : t }, h.clickDistance = function(t) { return arguments.length ? (l = (t = +t) * t, h) : Math.sqrt(l) }, h }, vo = {}, mo = {}, _o = 34, wo = 10, xo = 13; function ko(t) { return new Function("d", "return {" + t.map((function(t, e) { return JSON.stringify(t) + ": d[" + e + '] || ""' })).join(",") + "}") } function Eo(t) { var e = Object.create(null), n = []; return t.forEach((function(t) { for (var r in t) r in e || n.push(e[r] = r) })), n } function Ao(t, e) { var n = t + "", r = n.length; return r < e ? new Array(e - r + 1).join(0) + n : n } function So(t) { var e, n = t.getUTCHours(), r = t.getUTCMinutes(), i = t.getUTCSeconds(), a = t.getUTCMilliseconds(); return isNaN(t) ? "Invalid Date" : ((e = t.getUTCFullYear()) < 0 ? "-" + Ao(-e, 6) : e > 9999 ? "+" + Ao(e, 6) : Ao(e, 4)) + "-" + Ao(t.getUTCMonth() + 1, 2) + "-" + Ao(t.getUTCDate(), 2) + (a ? "T" + Ao(n, 2) + ":" + Ao(r, 2) + ":" + Ao(i, 2) + "." + Ao(a, 3) + "Z" : i ? "T" + Ao(n, 2) + ":" + Ao(r, 2) + ":" + Ao(i, 2) + "Z" : r || n ? "T" + Ao(n, 2) + ":" + Ao(r, 2) + "Z" : "") } var Mo = function(t) { var e = new RegExp('["' + t + "\n\r]"), n = t.charCodeAt(0); function r(t, e) { var r, i = [], a = t.length, o = 0, s = 0, u = a <= 0, c = !1; function f() { if (u) return mo; if (c) return c = !1, vo; var e, r, i = o; if (t.charCodeAt(i) === _o) { for (; o++ < a && t.charCodeAt(o) !== _o || t.charCodeAt(++o) === _o;); return (e = o) >= a ? u = !0 : (r = t.charCodeAt(o++)) === wo ? c = !0 : r === xo && (c = !0, t.charCodeAt(o) === wo && ++o), t.slice(i + 1, e - 1).replace(/""/g, '"') } for (; o < a;) { if ((r = t.charCodeAt(e = o++)) === wo) c = !0; else if (r === xo) c = !0, t.charCodeAt(o) === wo && ++o; else if (r !== n) continue; return t.slice(i, e) } return u = !0, t.slice(i, a) } for (t.charCodeAt(a - 1) === wo && --a, t.charCodeAt(a - 1) === xo && --a; (r = f()) !== mo;) { for (var l = []; r !== vo && r !== mo;) l.push(r), r = f(); e && null == (l = e(l, s++)) || i.push(l) } return i } function i(e, n) { return e.map((function(e) { return n.map((function(t) { return o(e[t]) })).join(t) })) } function a(e) { return e.map(o).join(t) } function o(t) { return null == t ? "" : t instanceof Date ? So(t) : e.test(t += "") ? '"' + t.replace(/"/g, '""') + '"' : t } return { parse: function(t, e) { var n, i, a = r(t, (function(t, r) { if (n) return n(t, r - 1); i = t, n = e ? function(t, e) { var n = ko(t); return function(r, i) { return e(n(r), i, t) } }(t, e) : ko(t) })); return a.columns = i || [], a }, parseRows: r, format: function(e, n) { return null == n && (n = Eo(e)), [n.map(o).join(t)].concat(i(e, n)).join("\n") }, formatBody: function(t, e) { return null == e && (e = Eo(t)), i(t, e).join("\n") }, formatRows: function(t) { return t.map(a).join("\n") }, formatRow: a, formatValue: o } }, To = Mo(","), Do = To.parse, Co = To.parseRows, No = To.format, Io = To.formatBody, Lo = To.formatRows, Bo = To.formatRow, Oo = To.formatValue, Ro = Mo("\t"), Po = Ro.parse, Fo = Ro.parseRows, qo = Ro.format, jo = Ro.formatBody, Uo = Ro.formatRows, zo = Ro.formatRow, Yo = Ro.formatValue; function Vo(t) { for (var e in t) { var n, r, i = t[e].trim(); if (i) if ("true" === i) i = !0; else if ("false" === i) i = !1; else if ("NaN" === i) i = NaN; else if (isNaN(n = +i)) { if (!(r = i.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/))) continue; Ho && r[4] && !r[7] && (i = i.replace(/-/g, "/").replace(/T/, " ")), i = new Date(i) } else i = n; else i = null; t[e] = i } return t } var Ho = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours(); function Go(t) { return +t } function $o(t) { return t * t } function Wo(t) { return t * (2 - t) } function Ko(t) { return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2 } var Xo = function t(e) { function n(t) { return Math.pow(t, e) } return e = +e, n.exponent = t, n }(3), Zo = function t(e) { function n(t) { return 1 - Math.pow(1 - t, e) } return e = +e, n.exponent = t, n }(3), Jo = function t(e) { function n(t) { return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2 } return e = +e, n.exponent = t, n }(3), Qo = Math.PI, ts = Qo / 2; function es(t) { return 1 - Math.cos(t * ts) } function ns(t) { return Math.sin(t * ts) } function rs(t) { return (1 - Math.cos(Qo * t)) / 2 } function is(t) { return Math.pow(2, 10 * t - 10) } function as(t) { return 1 - Math.pow(2, -10 * t) } function os(t) { return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2 } function ss(t) { return 1 - Math.sqrt(1 - t * t) } function us(t) { return Math.sqrt(1 - --t * t) } function cs(t) { return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2 } var fs = 4 / 11, ls = 6 / 11, hs = 8 / 11, ds = .75, ps = 9 / 11, gs = 10 / 11, ys = .9375, bs = 21 / 22, vs = 63 / 64, ms = 1 / fs / fs; function _s(t) { return 1 - ws(1 - t) } function ws(t) { return (t = +t) < fs ? ms * t * t : t < hs ? ms * (t -= ls) * t + ds : t < gs ? ms * (t -= ps) * t + ys : ms * (t -= bs) * t + vs } function xs(t) { return ((t *= 2) <= 1 ? 1 - ws(1 - t) : ws(t - 1) + 1) / 2 } var ks = function t(e) { function n(t) { return t * t * ((e + 1) * t - e) } return e = +e, n.overshoot = t, n }(1.70158), Es = function t(e) { function n(t) { return --t * t * ((e + 1) * t + e) + 1 } return e = +e, n.overshoot = t, n }(1.70158), As = function t(e) { function n(t) { return ((t *= 2) < 1 ? t * t * ((e + 1) * t - e) : (t -= 2) * t * ((e + 1) * t + e) + 2) / 2 } return e = +e, n.overshoot = t, n }(1.70158), Ss = 2 * Math.PI, Ms = function t(e, n) { var r = Math.asin(1 / (e = Math.max(1, e))) * (n /= Ss); function i(t) { return e * Math.pow(2, 10 * --t) * Math.sin((r - t) / n) } return i.amplitude = function(e) { return t(e, n * Ss) }, i.period = function(n) { return t(e, n) }, i }(1, .3), Ts = function t(e, n) { var r = Math.asin(1 / (e = Math.max(1, e))) * (n /= Ss); function i(t) { return 1 - e * Math.pow(2, -10 * (t = +t)) * Math.sin((t + r) / n) } return i.amplitude = function(e) { return t(e, n * Ss) }, i.period = function(n) { return t(e, n) }, i }(1, .3), Ds = function t(e, n) { var r = Math.asin(1 / (e = Math.max(1, e))) * (n /= Ss); function i(t) { return ((t = 2 * t - 1) < 0 ? e * Math.pow(2, 10 * t) * Math.sin((r - t) / n) : 2 - e * Math.pow(2, -10 * t) * Math.sin((r + t) / n)) / 2 } return i.amplitude = function(e) { return t(e, n * Ss) }, i.period = function(n) { return t(e, n) }, i }(1, .3); function Cs(t) { if (!t.ok) throw new Error(t.status + " " + t.statusText); return t.blob() } var Ns = function(t, e) { return fetch(t, e).then(Cs) }; function Is(t) { if (!t.ok) throw new Error(t.status + " " + t.statusText); return t.arrayBuffer() } var Ls = function(t, e) { return fetch(t, e).then(Is) }; function Bs(t) { if (!t.ok) throw new Error(t.status + " " + t.statusText); return t.text() } var Os = function(t, e) { return fetch(t, e).then(Bs) }; function Rs(t) { return function(e, n, r) { return 2 === arguments.length && "function" == typeof n && (r = n, n = void 0), Os(e, n).then((function(e) { return t(e, r) })) } } function Ps(t, e, n, r) { 3 === arguments.length && "function" == typeof n && (r = n, n = void 0); var i = Mo(t); return Os(e, n).then((function(t) { return i.parse(t, r) })) } var Fs = Rs(Do), qs = Rs(Po), js = function(t, e) { return new Promise((function(n, r) { var i = new Image; for (var a in e) i[a] = e[a]; i.onerror = r, i.onload = function() { n(i) }, i.src = t })) }; function Us(t) { if (!t.ok) throw new Error(t.status + " " + t.statusText); return t.json() } var zs = function(t, e) { return fetch(t, e).then(Us) }; function Ys(t) { return function(e, n) { return Os(e, n).then((function(e) { return (new DOMParser).parseFromString(e, t) })) } } var Vs = Ys("application/xml"), Hs = Ys("text/html"), Gs = Ys("image/svg+xml"), $s = function(t, e) { var n; function r() { var r, i, a = n.length, o = 0, s = 0; for (r = 0; r < a; ++r) o += (i = n[r]).x, s += i.y; for (o = o / a - t, s = s / a - e, r = 0; r < a; ++r)(i = n[r]).x -= o, i.y -= s } return null == t && (t = 0), null == e && (e = 0), r.initialize = function(t) { n = t }, r.x = function(e) { return arguments.length ? (t = +e, r) : t }, r.y = function(t) { return arguments.length ? (e = +t, r) : e }, r }, Ws = function(t) { return function() { return t } }, Ks = function() { return 1e-6 * (Math.random() - .5) }; function Xs(t, e, n, r) { if (isNaN(e) || isNaN(n)) return t; var i, a, o, s, u, c, f, l, h, d = t._root, p = { data: r }, g = t._x0, y = t._y0, b = t._x1, v = t._y1; if (!d) return t._root = p, t; for (; d.length;) if ((c = e >= (a = (g + b) / 2)) ? g = a : b = a, (f = n >= (o = (y + v) / 2)) ? y = o : v = o, i = d, !(d = d[l = f << 1 | c])) return i[l] = p, t; if (s = +t._x.call(null, d.data), u = +t._y.call(null, d.data), e === s && n === u) return p.next = d, i ? i[l] = p : t._root = p, t; do { i = i ? i[l] = new Array(4) : t._root = new Array(4), (c = e >= (a = (g + b) / 2)) ? g = a : b = a, (f = n >= (o = (y + v) / 2)) ? y = o : v = o } while ((l = f << 1 | c) == (h = (u >= o) << 1 | s >= a)); return i[h] = d, i[l] = p, t } var Zs = function(t, e, n, r, i) { this.node = t, this.x0 = e, this.y0 = n, this.x1 = r, this.y1 = i }; function Js(t) { return t[0] } function Qs(t) { return t[1] } function tu(t, e, n) { var r = new eu(null == e ? Js : e, null == n ? Qs : n, NaN, NaN, NaN, NaN); return null == t ? r : r.addAll(t) } function eu(t, e, n, r, i, a) { this._x = t, this._y = e, this._x0 = n, this._y0 = r, this._x1 = i, this._y1 = a, this._root = void 0 } function nu(t) { for (var e = { data: t.data }, n = e; t = t.next;) n = n.next = { data: t.data }; return e } var ru = tu.prototype = eu.prototype; function iu(t) { return t.x + t.vx } function au(t) { return t.y + t.vy } ru.copy = function() { var t, e, n = new eu(this._x, this._y, this._x0, this._y0, this._x1, this._y1), r = this._root; if (!r) return n; if (!r.length) return n._root = nu(r), n; for (t = [{ source: r, target: n._root = new Array(4) }]; r = t.pop();) for (var i = 0; i < 4; ++i)(e = r.source[i]) && (e.length ? t.push({ source: e, target: r.target[i] = new Array(4) }) : r.target[i] = nu(e)); return n }, ru.add = function(t) { var e = +this._x.call(null, t), n = +this._y.call(null, t); return Xs(this.cover(e, n), e, n, t) }, ru.addAll = function(t) { var e, n, r, i, a = t.length, o = new Array(a), s = new Array(a), u = 1 / 0, c = 1 / 0, f = -1 / 0, l = -1 / 0; for (n = 0; n < a; ++n) isNaN(r = +this._x.call(null, e = t[n])) || isNaN(i = +this._y.call(null, e)) || (o[n] = r, s[n] = i, r < u && (u = r), r > f && (f = r), i < c && (c = i), i > l && (l = i)); if (u > f || c > l) return this; for (this.cover(u, c).cover(f, l), n = 0; n < a; ++n) Xs(this, o[n], s[n], t[n]); return this }, ru.cover = function(t, e) { if (isNaN(t = +t) || isNaN(e = +e)) return this; var n = this._x0, r = this._y0, i = this._x1, a = this._y1; if (isNaN(n)) i = (n = Math.floor(t)) + 1, a = (r = Math.floor(e)) + 1; else { for (var o, s, u = i - n, c = this._root; n > t || t >= i || r > e || e >= a;) switch (s = (e < r) << 1 | t < n, (o = new Array(4))[s] = c, c = o, u *= 2, s) { case 0: i = n + u, a = r + u; break; case 1: n = i - u, a = r + u; break; case 2: i = n + u, r = a - u; break; case 3: n = i - u, r = a - u } this._root && this._root.length && (this._root = c) } return this._x0 = n, this._y0 = r, this._x1 = i, this._y1 = a, this }, ru.data = function() { var t = []; return this.visit((function(e) { if (!e.length) do { t.push(e.data) } while (e = e.next) })), t }, ru.extent = function(t) { return arguments.length ? this.cover(+t[0][0], +t[0][1]).cover(+t[1][0], +t[1][1]) : isNaN(this._x0) ? void 0 : [ [this._x0, this._y0], [this._x1, this._y1] ] }, ru.find = function(t, e, n) { var r, i, a, o, s, u, c, f = this._x0, l = this._y0, h = this._x1, d = this._y1, p = [], g = this._root; for (g && p.push(new Zs(g, f, l, h, d)), null == n ? n = 1 / 0 : (f = t - n, l = e - n, h = t + n, d = e + n, n *= n); u = p.pop();) if (!(!(g = u.node) || (i = u.x0) > h || (a = u.y0) > d || (o = u.x1) < f || (s = u.y1) < l)) if (g.length) { var y = (i + o) / 2, b = (a + s) / 2; p.push(new Zs(g[3], y, b, o, s), new Zs(g[2], i, b, y, s), new Zs(g[1], y, a, o, b), new Zs(g[0], i, a, y, b)), (c = (e >= b) << 1 | t >= y) && (u = p[p.length - 1], p[p.length - 1] = p[p.length - 1 - c], p[p.length - 1 - c] = u) } else { var v = t - +this._x.call(null, g.data), m = e - +this._y.call(null, g.data), _ = v * v + m * m; if (_ < n) { var w = Math.sqrt(n = _); f = t - w, l = e - w, h = t + w, d = e + w, r = g.data } } return r }, ru.remove = function(t) { if (isNaN(a = +this._x.call(null, t)) || isNaN(o = +this._y.call(null, t))) return this; var e, n, r, i, a, o, s, u, c, f, l, h, d = this._root, p = this._x0, g = this._y0, y = this._x1, b = this._y1; if (!d) return this; if (d.length) for (;;) { if ((c = a >= (s = (p + y) / 2)) ? p = s : y = s, (f = o >= (u = (g + b) / 2)) ? g = u : b = u, e = d, !(d = d[l = f << 1 | c])) return this; if (!d.length) break; (e[l + 1 & 3] || e[l + 2 & 3] || e[l + 3 & 3]) && (n = e, h = l) } for (; d.data !== t;) if (r = d, !(d = d.next)) return this; return (i = d.next) && delete d.next, r ? (i ? r.next = i : delete r.next, this) : e ? (i ? e[l] = i : delete e[l], (d = e[0] || e[1] || e[2] || e[3]) && d === (e[3] || e[2] || e[1] || e[0]) && !d.length && (n ? n[h] = d : this._root = d), this) : (this._root = i, this) }, ru.removeAll = function(t) { for (var e = 0, n = t.length; e < n; ++e) this.remove(t[e]); return this }, ru.root = function() { return this._root }, ru.size = function() { var t = 0; return this.visit((function(e) { if (!e.length) do { ++t } while (e = e.next) })), t }, ru.visit = function(t) { var e, n, r, i, a, o, s = [], u = this._root; for (u && s.push(new Zs(u, this._x0, this._y0, this._x1, this._y1)); e = s.pop();) if (!t(u = e.node, r = e.x0, i = e.y0, a = e.x1, o = e.y1) && u.length) { var c = (r + a) / 2, f = (i + o) / 2; (n = u[3]) && s.push(new Zs(n, c, f, a, o)), (n = u[2]) && s.push(new Zs(n, r, f, c, o)), (n = u[1]) && s.push(new Zs(n, c, i, a, f)), (n = u[0]) && s.push(new Zs(n, r, i, c, f)) } return this }, ru.visitAfter = function(t) { var e, n = [], r = []; for (this._root && n.push(new Zs(this._root, this._x0, this._y0, this._x1, this._y1)); e = n.pop();) { var i = e.node; if (i.length) { var a, o = e.x0, s = e.y0, u = e.x1, c = e.y1, f = (o + u) / 2, l = (s + c) / 2; (a = i[0]) && n.push(new Zs(a, o, s, f, l)), (a = i[1]) && n.push(new Zs(a, f, s, u, l)), (a = i[2]) && n.push(new Zs(a, o, l, f, c)), (a = i[3]) && n.push(new Zs(a, f, l, u, c)) } r.push(e) } for (; e = r.pop();) t(e.node, e.x0, e.y0, e.x1, e.y1); return this }, ru.x = function(t) { return arguments.length ? (this._x = t, this) : this._x }, ru.y = function(t) { return arguments.length ? (this._y = t, this) : this._y }; var ou = function(t) { var e, n, r = 1, i = 1; function a() { for (var t, a, s, u, c, f, l, h = e.length, d = 0; d < i; ++d) for (a = tu(e, iu, au).visitAfter(o), t = 0; t < h; ++t) s = e[t], f = n[s.index], l = f * f, u = s.x + s.vx, c = s.y + s.vy, a.visit(p); function p(t, e, n, i, a) { var o = t.data, h = t.r, d = f + h; if (!o) return e > u + d || i < u - d || n > c + d || a < c - d; if (o.index > s.index) { var p = u - o.x - o.vx, g = c - o.y - o.vy, y = p * p + g * g; y < d * d && (0 === p && (y += (p = Ks()) * p), 0 === g && (y += (g = Ks()) * g), y = (d - (y = Math.sqrt(y))) / y * r, s.vx += (p *= y) * (d = (h *= h) / (l + h)), s.vy += (g *= y) * d, o.vx -= p * (d = 1 - d), o.vy -= g * d) } } } function o(t) { if (t.data) return t.r = n[t.data.index]; for (var e = t.r = 0; e < 4; ++e) t[e] && t[e].r > t.r && (t.r = t[e].r) } function s() { if (e) { var r, i, a = e.length; for (n = new Array(a), r = 0; r < a; ++r) i = e[r], n[i.index] = +t(i, r, e) } } return "function" != typeof t && (t = Ws(null == t ? 1 : +t)), a.initialize = function(t) { e = t, s() }, a.iterations = function(t) { return arguments.length ? (i = +t, a) : i }, a.strength = function(t) { return arguments.length ? (r = +t, a) : r }, a.radius = function(e) { return arguments.length ? (t = "function" == typeof e ? e : Ws(+e), s(), a) : t }, a }; function su(t) { return t.index } function uu(t, e) { var n = t.get(e); if (!n) throw new Error("missing: " + e); return n } var cu = function(t) { var e, n, r, i, a, o = su, s = function(t) { return 1 / Math.min(i[t.source.index], i[t.target.index]) }, u = Ws(30), c = 1; function f(r) { for (var i = 0, o = t.length; i < c; ++i) for (var s, u, f, l, h, d, p, g = 0; g < o; ++g) u = (s = t[g]).source, l = (f = s.target).x + f.vx - u.x - u.vx || Ks(), h = f.y + f.vy - u.y - u.vy || Ks(), l *= d = ((d = Math.sqrt(l * l + h * h)) - n[g]) / d * r * e[g], h *= d, f.vx -= l * (p = a[g]), f.vy -= h * p, u.vx += l * (p = 1 - p), u.vy += h * p } function l() { if (r) { var s, u, c = r.length, f = t.length, l = aa(r, o); for (s = 0, i = new Array(c); s < f; ++s)(u = t[s]).index = s, "object" != typeof u.source && (u.source = uu(l, u.source)), "object" != typeof u.target && (u.target = uu(l, u.target)), i[u.source.index] = (i[u.source.index] || 0) + 1, i[u.target.index] = (i[u.target.index] || 0) + 1; for (s = 0, a = new Array(f); s < f; ++s) u = t[s], a[s] = i[u.source.index] / (i[u.source.index] + i[u.target.index]); e = new Array(f), h(), n = new Array(f), d() } } function h() { if (r) for (var n = 0, i = t.length; n < i; ++n) e[n] = +s(t[n], n, t) } function d() { if (r) for (var e = 0, i = t.length; e < i; ++e) n[e] = +u(t[e], e, t) } return null == t && (t = []), f.initialize = function(t) { r = t, l() }, f.links = function(e) { return arguments.length ? (t = e, l(), f) : t }, f.id = function(t) { return arguments.length ? (o = t, f) : o }, f.iterations = function(t) { return arguments.length ? (c = +t, f) : c }, f.strength = function(t) { return arguments.length ? (s = "function" == typeof t ? t : Ws(+t), h(), f) : s }, f.distance = function(t) { return arguments.length ? (u = "function" == typeof t ? t : Ws(+t), d(), f) : u }, f }; function fu(t) { return t.x } function lu(t) { return t.y } var hu = 10, du = Math.PI * (3 - Math.sqrt(5)), pu = function(t) { var e, n = 1, r = .001, i = 1 - Math.pow(r, 1 / 300), a = 0, o = .6, s = aa(), u = Zn(f), c = gt("tick", "end"); function f() { l(), c.call("tick", e), n < r && (u.stop(), c.call("end", e)) } function l(r) { var u, c, f = t.length; void 0 === r && (r = 1); for (var l = 0; l < r; ++l) for (n += (a - n) * i, s.each((function(t) { t(n) })), u = 0; u < f; ++u) null == (c = t[u]).fx ? c.x += c.vx *= o : (c.x = c.fx, c.vx = 0), null == c.fy ? c.y += c.vy *= o : (c.y = c.fy, c.vy = 0); return e } function h() { for (var e, n = 0, r = t.length; n < r; ++n) { if ((e = t[n]).index = n, null != e.fx && (e.x = e.fx), null != e.fy && (e.y = e.fy), isNaN(e.x) || isNaN(e.y)) { var i = hu * Math.sqrt(n), a = n * du; e.x = i * Math.cos(a), e.y = i * Math.sin(a) }(isNaN(e.vx) || isNaN(e.vy)) && (e.vx = e.vy = 0) } } function d(e) { return e.initialize && e.initialize(t), e } return null == t && (t = []), h(), e = { tick: l, restart: function() { return u.restart(f), e }, stop: function() { return u.stop(), e }, nodes: function(n) { return arguments.length ? (t = n, h(), s.each(d), e) : t }, alpha: function(t) { return arguments.length ? (n = +t, e) : n }, alphaMin: function(t) { return arguments.length ? (r = +t, e) : r }, alphaDecay: function(t) { return arguments.length ? (i = +t, e) : +i }, alphaTarget: function(t) { return arguments.length ? (a = +t, e) : a }, velocityDecay: function(t) { return arguments.length ? (o = 1 - t, e) : 1 - o }, force: function(t, n) { return arguments.length > 1 ? (null == n ? s.remove(t) : s.set(t, d(n)), e) : s.get(t) }, find: function(e, n, r) { var i, a, o, s, u, c = 0, f = t.length; for (null == r ? r = 1 / 0 : r *= r, c = 0; c < f; ++c)(o = (i = e - (s = t[c]).x) * i + (a = n - s.y) * a) < r && (u = s, r = o); return u }, on: function(t, n) { return arguments.length > 1 ? (c.on(t, n), e) : c.on(t) } } }, gu = function() { var t, e, n, r, i = Ws(-30), a = 1, o = 1 / 0, s = .81; function u(r) { var i, a = t.length, o = tu(t, fu, lu).visitAfter(f); for (n = r, i = 0; i < a; ++i) e = t[i], o.visit(l) } function c() { if (t) { var e, n, a = t.length; for (r = new Array(a), e = 0; e < a; ++e) n = t[e], r[n.index] = +i(n, e, t) } } function f(t) { var e, n, i, a, o, s = 0, u = 0; if (t.length) { for (i = a = o = 0; o < 4; ++o)(e = t[o]) && (n = Math.abs(e.value)) && (s += e.value, u += n, i += n * e.x, a += n * e.y); t.x = i / u, t.y = a / u } else { (e = t).x = e.data.x, e.y = e.data.y; do { s += r[e.data.index] } while (e = e.next) } t.value = s } function l(t, i, u, c) { if (!t.value) return !0; var f = t.x - e.x, l = t.y - e.y, h = c - i, d = f * f + l * l; if (h * h / s < d) return d < o && (0 === f && (d += (f = Ks()) * f), 0 === l && (d += (l = Ks()) * l), d < a && (d = Math.sqrt(a * d)), e.vx += f * t.value * n / d, e.vy += l * t.value * n / d), !0; if (!(t.length || d >= o)) { (t.data !== e || t.next) && (0 === f && (d += (f = Ks()) * f), 0 === l && (d += (l = Ks()) * l), d < a && (d = Math.sqrt(a * d))); do { t.data !== e && (h = r[t.data.index] * n / d, e.vx += f * h, e.vy += l * h) } while (t = t.next) } } return u.initialize = function(e) { t = e, c() }, u.strength = function(t) { return arguments.length ? (i = "function" == typeof t ? t : Ws(+t), c(), u) : i }, u.distanceMin = function(t) { return arguments.length ? (a = t * t, u) : Math.sqrt(a) }, u.distanceMax = function(t) { return arguments.length ? (o = t * t, u) : Math.sqrt(o) }, u.theta = function(t) { return arguments.length ? (s = t * t, u) : Math.sqrt(s) }, u }, yu = function(t, e, n) { var r, i, a, o = Ws(.1); function s(t) { for (var o = 0, s = r.length; o < s; ++o) { var u = r[o], c = u.x - e || 1e-6, f = u.y - n || 1e-6, l = Math.sqrt(c * c + f * f), h = (a[o] - l) * i[o] * t / l; u.vx += c * h, u.vy += f * h } } function u() { if (r) { var e, n = r.length; for (i = new Array(n), a = new Array(n), e = 0; e < n; ++e) a[e] = +t(r[e], e, r), i[e] = isNaN(a[e]) ? 0 : +o(r[e], e, r) } } return "function" != typeof t && (t = Ws(+t)), null == e && (e = 0), null == n && (n = 0), s.initialize = function(t) { r = t, u() }, s.strength = function(t) { return arguments.length ? (o = "function" == typeof t ? t : Ws(+t), u(), s) : o }, s.radius = function(e) { return arguments.length ? (t = "function" == typeof e ? e : Ws(+e), u(), s) : t }, s.x = function(t) { return arguments.length ? (e = +t, s) : e }, s.y = function(t) { return arguments.length ? (n = +t, s) : n }, s }, bu = function(t) { var e, n, r, i = Ws(.1); function a(t) { for (var i, a = 0, o = e.length; a < o; ++a)(i = e[a]).vx += (r[a] - i.x) * n[a] * t } function o() { if (e) { var a, o = e.length; for (n = new Array(o), r = new Array(o), a = 0; a < o; ++a) n[a] = isNaN(r[a] = +t(e[a], a, e)) ? 0 : +i(e[a], a, e) } } return "function" != typeof t && (t = Ws(null == t ? 0 : +t)), a.initialize = function(t) { e = t, o() }, a.strength = function(t) { return arguments.length ? (i = "function" == typeof t ? t : Ws(+t), o(), a) : i }, a.x = function(e) { return arguments.length ? (t = "function" == typeof e ? e : Ws(+e), o(), a) : t }, a }, vu = function(t) { var e, n, r, i = Ws(.1); function a(t) { for (var i, a = 0, o = e.length; a < o; ++a)(i = e[a]).vy += (r[a] - i.y) * n[a] * t } function o() { if (e) { var a, o = e.length; for (n = new Array(o), r = new Array(o), a = 0; a < o; ++a) n[a] = isNaN(r[a] = +t(e[a], a, e)) ? 0 : +i(e[a], a, e) } } return "function" != typeof t && (t = Ws(null == t ? 0 : +t)), a.initialize = function(t) { e = t, o() }, a.strength = function(t) { return arguments.length ? (i = "function" == typeof t ? t : Ws(+t), o(), a) : i }, a.y = function(e) { return arguments.length ? (t = "function" == typeof e ? e : Ws(+e), o(), a) : t }, a }, mu = function(t, e) { if ((n = (t = e ? t.toExponential(e - 1) : t.toExponential()).indexOf("e")) < 0) return null; var n, r = t.slice(0, n); return [r.length > 1 ? r[0] + r.slice(2) : r, +t.slice(n + 1)] }, _u = function(t) { return (t = mu(Math.abs(t))) ? t[1] : NaN }, wu = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; function xu(t) { if (!(e = wu.exec(t))) throw new Error("invalid format: " + t); var e; return new ku({ fill: e[1], align: e[2], sign: e[3], symbol: e[4], zero: e[5], width: e[6], comma: e[7], precision: e[8] && e[8].slice(1), trim: e[9], type: e[10] }) } function ku(t) { this.fill = void 0 === t.fill ? " " : t.fill + "", this.align = void 0 === t.align ? ">" : t.align + "", this.sign = void 0 === t.sign ? "-" : t.sign + "", this.symbol = void 0 === t.symbol ? "" : t.symbol + "", this.zero = !!t.zero, this.width = void 0 === t.width ? void 0 : +t.width, this.comma = !!t.comma, this.precision = void 0 === t.precision ? void 0 : +t.precision, this.trim = !!t.trim, this.type = void 0 === t.type ? "" : t.type + "" } xu.prototype = ku.prototype, ku.prototype.toString = function() { return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (void 0 === this.width ? "" : Math.max(1, 0 | this.width)) + (this.comma ? "," : "") + (void 0 === this.precision ? "" : "." + Math.max(0, 0 | this.precision)) + (this.trim ? "~" : "") + this.type }; var Eu, Au, Su, Mu, Tu = function(t) { t: for (var e, n = t.length, r = 1, i = -1; r < n; ++r) switch (t[r]) { case ".": i = e = r; break; case "0": 0 === i && (i = r), e = r; break; default: if (i > 0) { if (!+t[r]) break t; i = 0 } } return i > 0 ? t.slice(0, i) + t.slice(e + 1) : t }, Du = function(t, e) { var n = mu(t, e); if (!n) return t + ""; var r = n[0], i = n[1]; return i < 0 ? "0." + new Array(-i).join("0") + r : r.length > i + 1 ? r.slice(0, i + 1) + "." + r.slice(i + 1) : r + new Array(i - r.length + 2).join("0") }, Cu = { "%": function(t, e) { return (100 * t).toFixed(e) }, b: function(t) { return Math.round(t).toString(2) }, c: function(t) { return t + "" }, d: function(t) { return Math.round(t).toString(10) }, e: function(t, e) { return t.toExponential(e) }, f: function(t, e) { return t.toFixed(e) }, g: function(t, e) { return t.toPrecision(e) }, o: function(t) { return Math.round(t).toString(8) }, p: function(t, e) { return Du(100 * t, e) }, r: Du, s: function(t, e) { var n = mu(t, e); if (!n) return t + ""; var r = n[0], i = n[1], a = i - (Eu = 3 * Math.max(-8, Math.min(8, Math.floor(i / 3)))) + 1, o = r.length; return a === o ? r : a > o ? r + new Array(a - o + 1).join("0") : a > 0 ? r.slice(0, a) + "." + r.slice(a) : "0." + new Array(1 - a).join("0") + mu(t, Math.max(0, e + a - 1))[0] }, X: function(t) { return Math.round(t).toString(16).toUpperCase() }, x: function(t) { return Math.round(t).toString(16) } }, Nu = function(t) { return t }, Iu = Array.prototype.map, Lu = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"], Bu = function(t) { var e, n, r = void 0 === t.grouping || void 0 === t.thousands ? Nu : (e = Iu.call(t.grouping, Number), n = t.thousands + "", function(t, r) { for (var i = t.length, a = [], o = 0, s = e[0], u = 0; i > 0 && s > 0 && (u + s + 1 > r && (s = Math.max(1, r - u)), a.push(t.substring(i -= s, i + s)), !((u += s + 1) > r));) s = e[o = (o + 1) % e.length]; return a.reverse().join(n) }), i = void 0 === t.currency ? "" : t.currency[0] + "", a = void 0 === t.currency ? "" : t.currency[1] + "", o = void 0 === t.decimal ? "." : t.decimal + "", s = void 0 === t.numerals ? Nu : function(t) { return function(e) { return e.replace(/[0-9]/g, (function(e) { return t[+e] })) } }(Iu.call(t.numerals, String)), u = void 0 === t.percent ? "%" : t.percent + "", c = void 0 === t.minus ? "-" : t.minus + "", f = void 0 === t.nan ? "NaN" : t.nan + ""; function l(t) { var e = (t = xu(t)).fill, n = t.align, l = t.sign, h = t.symbol, d = t.zero, p = t.width, g = t.comma, y = t.precision, b = t.trim, v = t.type; "n" === v ? (g = !0, v = "g") : Cu[v] || (void 0 === y && (y = 12), b = !0, v = "g"), (d || "0" === e && "=" === n) && (d = !0, e = "0", n = "="); var m = "$" === h ? i : "#" === h && /[boxX]/.test(v) ? "0" + v.toLowerCase() : "", _ = "$" === h ? a : /[%p]/.test(v) ? u : "", w = Cu[v], x = /[defgprs%]/.test(v); function k(t) { var i, a, u, h = m, k = _; if ("c" === v) k = w(t) + k, t = ""; else { var E = (t = +t) < 0; if (t = isNaN(t) ? f : w(Math.abs(t), y), b && (t = Tu(t)), E && 0 == +t && (E = !1), h = (E ? "(" === l ? l : c : "-" === l || "(" === l ? "" : l) + h, k = ("s" === v ? Lu[8 + Eu / 3] : "") + k + (E && "(" === l ? ")" : ""), x) for (i = -1, a = t.length; ++i < a;) if (48 > (u = t.charCodeAt(i)) || u > 57) { k = (46 === u ? o + t.slice(i + 1) : t.slice(i)) + k, t = t.slice(0, i); break } } g && !d && (t = r(t, 1 / 0)); var A = h.length + t.length + k.length, S = A < p ? new Array(p - A + 1).join(e) : ""; switch (g && d && (t = r(S + t, S.length ? p - k.length : 1 / 0), S = ""), n) { case "<": t = h + t + k + S; break; case "=": t = h + S + t + k; break; case "^": t = S.slice(0, A = S.length >> 1) + h + t + k + S.slice(A); break; default: t = S + h + t + k } return s(t) } return y = void 0 === y ? 6 : /[gprs]/.test(v) ? Math.max(1, Math.min(21, y)) : Math.max(0, Math.min(20, y)), k.toString = function() { return t + "" }, k } return { format: l, formatPrefix: function(t, e) { var n = l(((t = xu(t)).type = "f", t)), r = 3 * Math.max(-8, Math.min(8, Math.floor(_u(e) / 3))), i = Math.pow(10, -r), a = Lu[8 + r / 3]; return function(t) { return n(i * t) + a } } } }; function Ou(t) { return Au = Bu(t), Su = Au.format, Mu = Au.formatPrefix, Au } Ou({ decimal: ".", thousands: ",", grouping: [3], currency: ["$", ""], minus: "-" }); var Ru = function(t) { return Math.max(0, -_u(Math.abs(t))) }, Pu = function(t, e) { return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor(_u(e) / 3))) - _u(Math.abs(t))) }, Fu = function(t, e) { return t = Math.abs(t), e = Math.abs(e) - t, Math.max(0, _u(e) - _u(t)) + 1 }, qu = function() { return new ju }; function ju() { this.reset() } ju.prototype = { constructor: ju, reset: function() { this.s = this.t = 0 }, add: function(t) { zu(Uu, t, this.t), zu(this, Uu.s, this.s), this.s ? this.t += Uu.t : this.s = Uu.t }, valueOf: function() { return this.s } }; var Uu = new ju; function zu(t, e, n) { var r = t.s = e + n, i = r - e, a = r - i; t.t = e - a + (n - i) } var Yu = 1e-6, Vu = 1e-12, Hu = Math.PI, Gu = Hu / 2, $u = Hu / 4, Wu = 2 * Hu, Ku = 180 / Hu, Xu = Hu / 180, Zu = Math.abs, Ju = Math.atan, Qu = Math.atan2, tc = Math.cos, ec = Math.ceil, nc = Math.exp, rc = (Math.floor, Math.log), ic = Math.pow, ac = Math.sin, oc = Math.sign || function(t) { return t > 0 ? 1 : t < 0 ? -1 : 0 }, sc = Math.sqrt, uc = Math.tan; function cc(t) { return t > 1 ? 0 : t < -1 ? Hu : Math.acos(t) } function fc(t) { return t > 1 ? Gu : t < -1 ? -Gu : Math.asin(t) } function lc(t) { return (t = ac(t / 2)) * t } function hc() {} function dc(t, e) { t && gc.hasOwnProperty(t.type) && gc[t.type](t, e) } var pc = { Feature: function(t, e) { dc(t.geometry, e) }, FeatureCollection: function(t, e) { for (var n = t.features, r = -1, i = n.length; ++r < i;) dc(n[r].geometry, e) } }, gc = { Sphere: function(t, e) { e.sphere() }, Point: function(t, e) { t = t.coordinates, e.point(t[0], t[1], t[2]) }, MultiPoint: function(t, e) { for (var n = t.coordinates, r = -1, i = n.length; ++r < i;) t = n[r], e.point(t[0], t[1], t[2]) }, LineString: function(t, e) { yc(t.coordinates, e, 0) }, MultiLineString: function(t, e) { for (var n = t.coordinates, r = -1, i = n.length; ++r < i;) yc(n[r], e, 0) }, Polygon: function(t, e) { bc(t.coordinates, e) }, MultiPolygon: function(t, e) { for (var n = t.coordinates, r = -1, i = n.length; ++r < i;) bc(n[r], e) }, GeometryCollection: function(t, e) { for (var n = t.geometries, r = -1, i = n.length; ++r < i;) dc(n[r], e) } }; function yc(t, e, n) { var r, i = -1, a = t.length - n; for (e.lineStart(); ++i < a;) r = t[i], e.point(r[0], r[1], r[2]); e.lineEnd() } function bc(t, e) { var n = -1, r = t.length; for (e.polygonStart(); ++n < r;) yc(t[n], e, 1); e.polygonEnd() } var vc, mc, _c, wc, xc, kc = function(t, e) { t && pc.hasOwnProperty(t.type) ? pc[t.type](t, e) : dc(t, e) }, Ec = qu(), Ac = qu(), Sc = { point: hc, lineStart: hc, lineEnd: hc, polygonStart: function() { Ec.reset(), Sc.lineStart = Mc, Sc.lineEnd = Tc }, polygonEnd: function() { var t = +Ec; Ac.add(t < 0 ? Wu + t : t), this.lineStart = this.lineEnd = this.point = hc }, sphere: function() { Ac.add(Wu) } }; function Mc() { Sc.point = Dc } function Tc() { Cc(vc, mc) } function Dc(t, e) { Sc.point = Cc, vc = t, mc = e, _c = t *= Xu, wc = tc(e = (e *= Xu) / 2 + $u), xc = ac(e) } function Cc(t, e) { var n = (t *= Xu) - _c, r = n >= 0 ? 1 : -1, i = r * n, a = tc(e = (e *= Xu) / 2 + $u), o = ac(e), s = xc * o, u = wc * a + s * tc(i), c = s * r * ac(i); Ec.add(Qu(c, u)), _c = t, wc = a, xc = o } var Nc = function(t) { return Ac.reset(), kc(t, Sc), 2 * Ac }; function Ic(t) { return [Qu(t[1], t[0]), fc(t[2])] } function Lc(t) { var e = t[0], n = t[1], r = tc(n); return [r * tc(e), r * ac(e), ac(n)] } function Bc(t, e) { return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] } function Oc(t, e) { return [t[1] * e[2] - t[2] * e[1], t[2] * e[0] - t[0] * e[2], t[0] * e[1] - t[1] * e[0]] } function Rc(t, e) { t[0] += e[0], t[1] += e[1], t[2] += e[2] } function Pc(t, e) { return [t[0] * e, t[1] * e, t[2] * e] } function Fc(t) { var e = sc(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]); t[0] /= e, t[1] /= e, t[2] /= e } var qc, jc, Uc, zc, Yc, Vc, Hc, Gc, $c, Wc, Kc = qu(), Xc = { point: Zc, lineStart: Qc, lineEnd: tf, polygonStart: function() { Xc.point = ef, Xc.lineStart = nf, Xc.lineEnd = rf, Kc.reset(), Sc.polygonStart() }, polygonEnd: function() { Sc.polygonEnd(), Xc.point = Zc, Xc.lineStart = Qc, Xc.lineEnd = tf, Ec < 0 ? (qc = -(Uc = 180), jc = -(zc = 90)) : Kc > Yu ? zc = 90 : Kc < -Yu && (jc = -90), Wc[0] = qc, Wc[1] = Uc }, sphere: function() { qc = -(Uc = 180), jc = -(zc = 90) } }; function Zc(t, e) { $c.push(Wc = [qc = t, Uc = t]), e < jc && (jc = e), e > zc && (zc = e) } function Jc(t, e) { var n = Lc([t * Xu, e * Xu]); if (Gc) { var r = Oc(Gc, n), i = Oc([r[1], -r[0], 0], r); Fc(i), i = Ic(i); var a, o = t - Yc, s = o > 0 ? 1 : -1, u = i[0] * Ku * s, c = Zu(o) > 180; c ^ (s * Yc < u && u < s * t) ? (a = i[1] * Ku) > zc && (zc = a) : c ^ (s * Yc < (u = (u + 360) % 360 - 180) && u < s * t) ? (a = -i[1] * Ku) < jc && (jc = a) : (e < jc && (jc = e), e > zc && (zc = e)), c ? t < Yc ? af(qc, t) > af(qc, Uc) && (Uc = t) : af(t, Uc) > af(qc, Uc) && (qc = t) : Uc >= qc ? (t < qc && (qc = t), t > Uc && (Uc = t)) : t > Yc ? af(qc, t) > af(qc, Uc) && (Uc = t) : af(t, Uc) > af(qc, Uc) && (qc = t) } else $c.push(Wc = [qc = t, Uc = t]); e < jc && (jc = e), e > zc && (zc = e), Gc = n, Yc = t } function Qc() { Xc.point = Jc } function tf() { Wc[0] = qc, Wc[1] = Uc, Xc.point = Zc, Gc = null } function ef(t, e) { if (Gc) { var n = t - Yc; Kc.add(Zu(n) > 180 ? n + (n > 0 ? 360 : -360) : n) } else Vc = t, Hc = e; Sc.point(t, e), Jc(t, e) } function nf() { Sc.lineStart() } function rf() { ef(Vc, Hc), Sc.lineEnd(), Zu(Kc) > Yu && (qc = -(Uc = 180)), Wc[0] = qc, Wc[1] = Uc, Gc = null } function af(t, e) { return (e -= t) < 0 ? e + 360 : e } function of (t, e) { return t[0] - e[0] } function sf(t, e) { return t[0] <= t[1] ? t[0] <= e && e <= t[1] : e < t[0] || t[1] < e } var uf, cf, ff, lf, hf, df, pf, gf, yf, bf, vf, mf, _f, wf, xf, kf, Ef = function(t) { var e, n, r, i, a, o, s; if (zc = Uc = -(qc = jc = 1 / 0), $c = [], kc(t, Xc), n = $c.length) { for ($c.sort( of ), e = 1, a = [r = $c[0]]; e < n; ++e) sf(r, (i = $c[e])[0]) || sf(r, i[1]) ? (af(r[0], i[1]) > af(r[0], r[1]) && (r[1] = i[1]), af(i[0], r[1]) > af(r[0], r[1]) && (r[0] = i[0])) : a.push(r = i); for (o = -1 / 0, e = 0, r = a[n = a.length - 1]; e <= n; r = i, ++e) i = a[e], (s = af(r[1], i[0])) > o && (o = s, qc = i[0], Uc = r[1]) } return $c = Wc = null, qc === 1 / 0 || jc === 1 / 0 ? [ [NaN, NaN], [NaN, NaN] ] : [ [qc, jc], [Uc, zc] ] }, Af = { sphere: hc, point: Sf, lineStart: Tf, lineEnd: Nf, polygonStart: function() { Af.lineStart = If, Af.lineEnd = Lf }, polygonEnd: function() { Af.lineStart = Tf, Af.lineEnd = Nf } }; function Sf(t, e) { t *= Xu; var n = tc(e *= Xu); Mf(n * tc(t), n * ac(t), ac(e)) } function Mf(t, e, n) { ++uf, ff += (t - ff) / uf, lf += (e - lf) / uf, hf += (n - hf) / uf } function Tf() { Af.point = Df } function Df(t, e) { t *= Xu; var n = tc(e *= Xu); wf = n * tc(t), xf = n * ac(t), kf = ac(e), Af.point = Cf, Mf(wf, xf, kf) } function Cf(t, e) { t *= Xu; var n = tc(e *= Xu), r = n * tc(t), i = n * ac(t), a = ac(e), o = Qu(sc((o = xf * a - kf * i) * o + (o = kf * r - wf * a) * o + (o = wf * i - xf * r) * o), wf * r + xf * i + kf * a); cf += o, df += o * (wf + (wf = r)), pf += o * (xf + (xf = i)), gf += o * (kf + (kf = a)), Mf(wf, xf, kf) } function Nf() { Af.point = Sf } function If() { Af.point = Bf } function Lf() { Of(mf, _f), Af.point = Sf } function Bf(t, e) { mf = t, _f = e, t *= Xu, e *= Xu, Af.point = Of; var n = tc(e); wf = n * tc(t), xf = n * ac(t), kf = ac(e), Mf(wf, xf, kf) } function Of(t, e) { t *= Xu; var n = tc(e *= Xu), r = n * tc(t), i = n * ac(t), a = ac(e), o = xf * a - kf * i, s = kf * r - wf * a, u = wf * i - xf * r, c = sc(o * o + s * s + u * u), f = fc(c), l = c && -f / c; yf += l * o, bf += l * s, vf += l * u, cf += f, df += f * (wf + (wf = r)), pf += f * (xf + (xf = i)), gf += f * (kf + (kf = a)), Mf(wf, xf, kf) } var Rf = function(t) { uf = cf = ff = lf = hf = df = pf = gf = yf = bf = vf = 0, kc(t, Af); var e = yf, n = bf, r = vf, i = e * e + n * n + r * r; return i < Vu && (e = df, n = pf, r = gf, cf < Yu && (e = ff, n = lf, r = hf), (i = e * e + n * n + r * r) < Vu) ? [NaN, NaN] : [Qu(n, e) * Ku, fc(r / sc(i)) * Ku] }, Pf = function(t) { return function() { return t } }, Ff = function(t, e) { function n(n, r) { return n = t(n, r), e(n[0], n[1]) } return t.invert && e.invert && (n.invert = function(n, r) { return (n = e.invert(n, r)) && t.invert(n[0], n[1]) }), n }; function qf(t, e) { return [Zu(t) > Hu ? t + Math.round(-t / Wu) * Wu : t, e] } function jf(t, e, n) { return (t %= Wu) ? e || n ? Ff(zf(t), Yf(e, n)) : zf(t) : e || n ? Yf(e, n) : qf } function Uf(t) { return function(e, n) { return [(e += t) > Hu ? e - Wu : e < -Hu ? e + Wu : e, n] } } function zf(t) { var e = Uf(t); return e.invert = Uf(-t), e } function Yf(t, e) { var n = tc(t), r = ac(t), i = tc(e), a = ac(e); function o(t, e) { var o = tc(e), s = tc(t) * o, u = ac(t) * o, c = ac(e), f = c * n + s * r; return [Qu(u * i - f * a, s * n - c * r), fc(f * i + u * a)] } return o.invert = function(t, e) { var o = tc(e), s = tc(t) * o, u = ac(t) * o, c = ac(e), f = c * i - u * a; return [Qu(u * i + c * a, s * n + f * r), fc(f * n - s * r)] }, o } qf.invert = qf; var Vf = function(t) { function e(e) { return (e = t(e[0] * Xu, e[1] * Xu))[0] *= Ku, e[1] *= Ku, e } return t = jf(t[0] * Xu, t[1] * Xu, t.length > 2 ? t[2] * Xu : 0), e.invert = function(e) { return (e = t.invert(e[0] * Xu, e[1] * Xu))[0] *= Ku, e[1] *= Ku, e }, e }; function Hf(t, e, n, r, i, a) { if (n) { var o = tc(e), s = ac(e), u = r * n; null == i ? (i = e + r * Wu, a = e - u / 2) : (i = Gf(o, i), a = Gf(o, a), (r > 0 ? i < a : i > a) && (i += r * Wu)); for (var c, f = i; r > 0 ? f > a : f < a; f -= u) c = Ic([o, -s * tc(f), -s * ac(f)]), t.point(c[0], c[1]) } } function Gf(t, e) { (e = Lc(e))[0] -= t, Fc(e); var n = cc(-e[1]); return ((-e[2] < 0 ? -n : n) + Wu - Yu) % Wu } var $f = function() { var t, e, n = Pf([0, 0]), r = Pf(90), i = Pf(6), a = { point: function(n, r) { t.push(n = e(n, r)), n[0] *= Ku, n[1] *= Ku } }; function o() { var o = n.apply(this, arguments), s = r.apply(this, arguments) * Xu, u = i.apply(this, arguments) * Xu; return t = [], e = jf(-o[0] * Xu, -o[1] * Xu, 0).invert, Hf(a, s, u, 1), o = { type: "Polygon", coordinates: [t] }, t = e = null, o } return o.center = function(t) { return arguments.length ? (n = "function" == typeof t ? t : Pf([+t[0], +t[1]]), o) : n }, o.radius = function(t) { return arguments.length ? (r = "function" == typeof t ? t : Pf(+t), o) : r }, o.precision = function(t) { return arguments.length ? (i = "function" == typeof t ? t : Pf(+t), o) : i }, o }, Wf = function() { var t, e = []; return { point: function(e, n) { t.push([e, n]) }, lineStart: function() { e.push(t = []) }, lineEnd: hc, rejoin: function() { e.length > 1 && e.push(e.pop().concat(e.shift())) }, result: function() { var n = e; return e = [], t = null, n } } }, Kf = function(t, e) { return Zu(t[0] - e[0]) < Yu && Zu(t[1] - e[1]) < Yu }; function Xf(t, e, n, r) { this.x = t, this.z = e, this.o = n, this.e = r, this.v = !1, this.n = this.p = null } var Zf = function(t, e, n, r, i) { var a, o, s = [], u = []; if (t.forEach((function(t) { if (!((e = t.length - 1) <= 0)) { var e, n, r = t[0], o = t[e]; if (Kf(r, o)) { for (i.lineStart(), a = 0; a < e; ++a) i.point((r = t[a])[0], r[1]); i.lineEnd() } else s.push(n = new Xf(r, t, null, !0)), u.push(n.o = new Xf(r, null, n, !1)), s.push(n = new Xf(o, t, null, !1)), u.push(n.o = new Xf(o, null, n, !0)) } })), s.length) { for (u.sort(e), Jf(s), Jf(u), a = 0, o = u.length; a < o; ++a) u[a].e = n = !n; for (var c, f, l = s[0];;) { for (var h = l, d = !0; h.v;) if ((h = h.n) === l) return; c = h.z, i.lineStart(); do { if (h.v = h.o.v = !0, h.e) { if (d) for (a = 0, o = c.length; a < o; ++a) i.point((f = c[a])[0], f[1]); else r(h.x, h.n.x, 1, i); h = h.n } else { if (d) for (c = h.p.z, a = c.length - 1; a >= 0; --a) i.point((f = c[a])[0], f[1]); else r(h.x, h.p.x, -1, i); h = h.p } c = (h = h.o).z, d = !d } while (!h.v); i.lineEnd() } } }; function Jf(t) { if (e = t.length) { for (var e, n, r = 0, i = t[0]; ++r < e;) i.n = n = t[r], n.p = i, i = n; i.n = n = t[0], n.p = i } } var Qf = qu(); function tl(t) { return Zu(t[0]) <= Hu ? t[0] : oc(t[0]) * ((Zu(t[0]) + Hu) % Wu - Hu) } var el = function(t, e) { var n = tl(e), r = e[1], i = ac(r), a = [ac(n), -tc(n), 0], o = 0, s = 0; Qf.reset(), 1 === i ? r = Gu + Yu : -1 === i && (r = -Gu - Yu); for (var u = 0, c = t.length; u < c; ++u) if (l = (f = t[u]).length) for (var f, l, h = f[l - 1], d = tl(h), p = h[1] / 2 + $u, g = ac(p), y = tc(p), b = 0; b < l; ++b, d = m, g = w, y = x, h = v) { var v = f[b], m = tl(v), _ = v[1] / 2 + $u, w = ac(_), x = tc(_), k = m - d, E = k >= 0 ? 1 : -1, A = E * k, S = A > Hu, M = g * w; if (Qf.add(Qu(M * E * ac(A), y * x + M * tc(A))), o += S ? k + E * Wu : k, S ^ d >= n ^ m >= n) { var T = Oc(Lc(h), Lc(v)); Fc(T); var D = Oc(a, T); Fc(D); var C = (S ^ k >= 0 ? -1 : 1) * fc(D[2]); (r > C || r === C && (T[0] || T[1])) && (s += S ^ k >= 0 ? 1 : -1) } } return (o < -Yu || o < Yu && Qf < -Yu) ^ 1 & s }, nl = function(t, e, n, r) { return function(i) { var a, o, s, u = e(i), c = Wf(), f = e(c), l = !1, h = { point: d, lineStart: g, lineEnd: y, polygonStart: function() { h.point = b, h.lineStart = v, h.lineEnd = m, o = [], a = [] }, polygonEnd: function() { h.point = d, h.lineStart = g, h.lineEnd = y, o = P(o); var t = el(a, r); o.length ? (l || (i.polygonStart(), l = !0), Zf(o, il, t, n, i)) : t && (l || (i.polygonStart(), l = !0), i.lineStart(), n(null, null, 1, i), i.lineEnd()), l && (i.polygonEnd(), l = !1), o = a = null }, sphere: function() { i.polygonStart(), i.lineStart(), n(null, null, 1, i), i.lineEnd(), i.polygonEnd() } }; function d(e, n) { t(e, n) && i.point(e, n) } function p(t, e) { u.point(t, e) } function g() { h.point = p, u.lineStart() } function y() { h.point = d, u.lineEnd() } function b(t, e) { s.push([t, e]), f.point(t, e) } function v() { f.lineStart(), s = [] } function m() { b(s[0][0], s[0][1]), f.lineEnd(); var t, e, n, r, u = f.clean(), h = c.result(), d = h.length; if (s.pop(), a.push(s), s = null, d) if (1 & u) { if ((e = (n = h[0]).length - 1) > 0) { for (l || (i.polygonStart(), l = !0), i.lineStart(), t = 0; t < e; ++t) i.point((r = n[t])[0], r[1]); i.lineEnd() } } else d > 1 && 2 & u && h.push(h.pop().concat(h.shift())), o.push(h.filter(rl)) } return h } }; function rl(t) { return t.length > 1 } function il(t, e) { return ((t = t.x)[0] < 0 ? t[1] - Gu - Yu : Gu - t[1]) - ((e = e.x)[0] < 0 ? e[1] - Gu - Yu : Gu - e[1]) } var al = nl((function() { return !0 }), (function(t) { var e, n = NaN, r = NaN, i = NaN; return { lineStart: function() { t.lineStart(), e = 1 }, point: function(a, o) { var s = a > 0 ? Hu : -Hu, u = Zu(a - n); Zu(u - Hu) < Yu ? (t.point(n, r = (r + o) / 2 > 0 ? Gu : -Gu), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(s, r), t.point(a, r), e = 0) : i !== s && u >= Hu && (Zu(n - i) < Yu && (n -= i * Yu), Zu(a - s) < Yu && (a -= s * Yu), r = function(t, e, n, r) { var i, a, o = ac(t - n); return Zu(o) > Yu ? Ju((ac(e) * (a = tc(r)) * ac(n) - ac(r) * (i = tc(e)) * ac(t)) / (i * a * o)) : (e + r) / 2 }(n, r, a, o), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(s, r), e = 0), t.point(n = a, r = o), i = s }, lineEnd: function() { t.lineEnd(), n = r = NaN }, clean: function() { return 2 - e } } }), (function(t, e, n, r) { var i; if (null == t) i = n * Gu, r.point(-Hu, i), r.point(0, i), r.point(Hu, i), r.point(Hu, 0), r.point(Hu, -i), r.point(0, -i), r.point(-Hu, -i), r.point(-Hu, 0), r.point(-Hu, i); else if (Zu(t[0] - e[0]) > Yu) { var a = t[0] < e[0] ? Hu : -Hu; i = n * a / 2, r.point(-a, i), r.point(0, i), r.point(a, i) } else r.point(e[0], e[1]) }), [-Hu, -Gu]); var ol = function(t) { var e = tc(t), n = 6 * Xu, r = e > 0, i = Zu(e) > Yu; function a(t, n) { return tc(t) * tc(n) > e } function o(t, n, r) { var i = [1, 0, 0], a = Oc(Lc(t), Lc(n)), o = Bc(a, a), s = a[0], u = o - s * s; if (!u) return !r && t; var c = e * o / u, f = -e * s / u, l = Oc(i, a), h = Pc(i, c); Rc(h, Pc(a, f)); var d = l, p = Bc(h, d), g = Bc(d, d), y = p * p - g * (Bc(h, h) - 1); if (!(y < 0)) { var b = sc(y), v = Pc(d, (-p - b) / g); if (Rc(v, h), v = Ic(v), !r) return v; var m, _ = t[0], w = n[0], x = t[1], k = n[1]; w < _ && (m = _, _ = w, w = m); var E = w - _, A = Zu(E - Hu) < Yu; if (!A && k < x && (m = x, x = k, k = m), A || E < Yu ? A ? x + k > 0 ^ v[1] < (Zu(v[0] - _) < Yu ? x : k) : x <= v[1] && v[1] <= k : E > Hu ^ (_ <= v[0] && v[0] <= w)) { var S = Pc(d, (-p + b) / g); return Rc(S, h), [v, Ic(S)] } } } function s(e, n) { var i = r ? t : Hu - t, a = 0; return e < -i ? a |= 1 : e > i && (a |= 2), n < -i ? a |= 4 : n > i && (a |= 8), a } return nl(a, (function(t) { var e, n, u, c, f; return { lineStart: function() { c = u = !1, f = 1 }, point: function(l, h) { var d, p = [l, h], g = a(l, h), y = r ? g ? 0 : s(l, h) : g ? s(l + (l < 0 ? Hu : -Hu), h) : 0; if (!e && (c = u = g) && t.lineStart(), g !== u && (!(d = o(e, p)) || Kf(e, d) || Kf(p, d)) && (p[0] += Yu, p[1] += Yu, g = a(p[0], p[1])), g !== u) f = 0, g ? (t.lineStart(), d = o(p, e), t.point(d[0], d[1])) : (d = o(e, p), t.point(d[0], d[1]), t.lineEnd()), e = d; else if (i && e && r ^ g) { var b; y & n || !(b = o(p, e, !0)) || (f = 0, r ? (t.lineStart(), t.point(b[0][0], b[0][1]), t.point(b[1][0], b[1][1]), t.lineEnd()) : (t.point(b[1][0], b[1][1]), t.lineEnd(), t.lineStart(), t.point(b[0][0], b[0][1]))) }!g || e && Kf(e, p) || t.point(p[0], p[1]), e = p, u = g, n = y }, lineEnd: function() { u && t.lineEnd(), e = null }, clean: function() { return f | (c && u) << 1 } } }), (function(e, r, i, a) { Hf(a, t, n, i, e, r) }), r ? [0, -t] : [-Hu, t - Hu]) }, sl = function(t, e, n, r, i, a) { var o, s = t[0], u = t[1], c = 0, f = 1, l = e[0] - s, h = e[1] - u; if (o = n - s, l || !(o > 0)) { if (o /= l, l < 0) { if (o < c) return; o < f && (f = o) } else if (l > 0) { if (o > f) return; o > c && (c = o) } if (o = i - s, l || !(o < 0)) { if (o /= l, l < 0) { if (o > f) return; o > c && (c = o) } else if (l > 0) { if (o < c) return; o < f && (f = o) } if (o = r - u, h || !(o > 0)) { if (o /= h, h < 0) { if (o < c) return; o < f && (f = o) } else if (h > 0) { if (o > f) return; o > c && (c = o) } if (o = a - u, h || !(o < 0)) { if (o /= h, h < 0) { if (o > f) return; o > c && (c = o) } else if (h > 0) { if (o < c) return; o < f && (f = o) } return c > 0 && (t[0] = s + c * l, t[1] = u + c * h), f < 1 && (e[0] = s + f * l, e[1] = u + f * h), !0 } } } } }, ul = 1e9, cl = -ul; function fl(t, e, n, r) { function i(i, a) { return t <= i && i <= n && e <= a && a <= r } function a(i, a, s, c) { var f = 0, l = 0; if (null == i || (f = o(i, s)) !== (l = o(a, s)) || u(i, a) < 0 ^ s > 0) do { c.point(0 === f || 3 === f ? t : n, f > 1 ? r : e) } while ((f = (f + s + 4) % 4) !== l); else c.point(a[0], a[1]) } function o(r, i) { return Zu(r[0] - t) < Yu ? i > 0 ? 0 : 3 : Zu(r[0] - n) < Yu ? i > 0 ? 2 : 1 : Zu(r[1] - e) < Yu ? i > 0 ? 1 : 0 : i > 0 ? 3 : 2 } function s(t, e) { return u(t.x, e.x) } function u(t, e) { var n = o(t, 1), r = o(e, 1); return n !== r ? n - r : 0 === n ? e[1] - t[1] : 1 === n ? t[0] - e[0] : 2 === n ? t[1] - e[1] : e[0] - t[0] } return function(o) { var u, c, f, l, h, d, p, g, y, b, v, m = o, _ = Wf(), w = { point: x, lineStart: function() { w.point = k, c && c.push(f = []); b = !0, y = !1, p = g = NaN }, lineEnd: function() { u && (k(l, h), d && y && _.rejoin(), u.push(_.result())); w.point = x, y && m.lineEnd() }, polygonStart: function() { m = _, u = [], c = [], v = !0 }, polygonEnd: function() { var e = function() { for (var e = 0, n = 0, i = c.length; n < i; ++n) for (var a, o, s = c[n], u = 1, f = s.length, l = s[0], h = l[0], d = l[1]; u < f; ++u) a = h, o = d, l = s[u], h = l[0], d = l[1], o <= r ? d > r && (h - a) * (r - o) > (d - o) * (t - a) && ++e : d <= r && (h - a) * (r - o) < (d - o) * (t - a) && --e; return e }(), n = v && e, i = (u = P(u)).length; (n || i) && (o.polygonStart(), n && (o.lineStart(), a(null, null, 1, o), o.lineEnd()), i && Zf(u, s, e, a, o), o.polygonEnd()); m = o, u = c = f = null } }; function x(t, e) { i(t, e) && m.point(t, e) } function k(a, o) { var s = i(a, o); if (c && f.push([a, o]), b) l = a, h = o, d = s, b = !1, s && (m.lineStart(), m.point(a, o)); else if (s && y) m.point(a, o); else { var u = [p = Math.max(cl, Math.min(ul, p)), g = Math.max(cl, Math.min(ul, g))], _ = [a = Math.max(cl, Math.min(ul, a)), o = Math.max(cl, Math.min(ul, o))]; sl(u, _, t, e, n, r) ? (y || (m.lineStart(), m.point(u[0], u[1])), m.point(_[0], _[1]), s || m.lineEnd(), v = !1) : s && (m.lineStart(), m.point(a, o), v = !1) } p = a, g = o, y = s } return w } } var ll, hl, dl, pl = function() { var t, e, n, r = 0, i = 0, a = 960, o = 500; return n = { stream: function(n) { return t && e === n ? t : t = fl(r, i, a, o)(e = n) }, extent: function(s) { return arguments.length ? (r = +s[0][0], i = +s[0][1], a = +s[1][0], o = +s[1][1], t = e = null, n) : [ [r, i], [a, o] ] } } }, gl = qu(), yl = { sphere: hc, point: hc, lineStart: function() { yl.point = vl, yl.lineEnd = bl }, lineEnd: hc, polygonStart: hc, polygonEnd: hc }; function bl() { yl.point = yl.lineEnd = hc } function vl(t, e) { ll = t *= Xu, hl = ac(e *= Xu), dl = tc(e), yl.point = ml } function ml(t, e) { t *= Xu; var n = ac(e *= Xu), r = tc(e), i = Zu(t - ll), a = tc(i), o = r * ac(i), s = dl * n - hl * r * a, u = hl * n + dl * r * a; gl.add(Qu(sc(o * o + s * s), u)), ll = t, hl = n, dl = r } var _l = function(t) { return gl.reset(), kc(t, yl), +gl }, wl = [null, null], xl = { type: "LineString", coordinates: wl }, kl = function(t, e) { return wl[0] = t, wl[1] = e, _l(xl) }, El = { Feature: function(t, e) { return Sl(t.geometry, e) }, FeatureCollection: function(t, e) { for (var n = t.features, r = -1, i = n.length; ++r < i;) if (Sl(n[r].geometry, e)) return !0; return !1 } }, Al = { Sphere: function() { return !0 }, Point: function(t, e) { return Ml(t.coordinates, e) }, MultiPoint: function(t, e) { for (var n = t.coordinates, r = -1, i = n.length; ++r < i;) if (Ml(n[r], e)) return !0; return !1 }, LineString: function(t, e) { return Tl(t.coordinates, e) }, MultiLineString: function(t, e) { for (var n = t.coordinates, r = -1, i = n.length; ++r < i;) if (Tl(n[r], e)) return !0; return !1 }, Polygon: function(t, e) { return Dl(t.coordinates, e) }, MultiPolygon: function(t, e) { for (var n = t.coordinates, r = -1, i = n.length; ++r < i;) if (Dl(n[r], e)) return !0; return !1 }, GeometryCollection: function(t, e) { for (var n = t.geometries, r = -1, i = n.length; ++r < i;) if (Sl(n[r], e)) return !0; return !1 } }; function Sl(t, e) { return !(!t || !Al.hasOwnProperty(t.type)) && Al[t.type](t, e) } function Ml(t, e) { return 0 === kl(t, e) } function Tl(t, e) { for (var n, r, i, a = 0, o = t.length; a < o; a++) { if (0 === (r = kl(t[a], e))) return !0; if (a > 0 && (i = kl(t[a], t[a - 1])) > 0 && n <= i && r <= i && (n + r - i) * (1 - Math.pow((n - r) / i, 2)) < Vu * i) return !0; n = r } return !1 } function Dl(t, e) { return !!el(t.map(Cl), Nl(e)) } function Cl(t) { return (t = t.map(Nl)).pop(), t } function Nl(t) { return [t[0] * Xu, t[1] * Xu] } var Il = function(t, e) { return (t && El.hasOwnProperty(t.type) ? El[t.type] : Sl)(t, e) }; function Ll(t, e, n) { var r = x(t, e - Yu, n).concat(e); return function(t) { return r.map((function(e) { return [t, e] })) } } function Bl(t, e, n) { var r = x(t, e - Yu, n).concat(e); return function(t) { return r.map((function(e) { return [e, t] })) } } function Ol() { var t, e, n, r, i, a, o, s, u, c, f, l, h = 10, d = h, p = 90, g = 360, y = 2.5; function b() { return { type: "MultiLineString", coordinates: v() } } function v() { return x(ec(r / p) * p, n, p).map(f).concat(x(ec(s / g) * g, o, g).map(l)).concat(x(ec(e / h) * h, t, h).filter((function(t) { return Zu(t % p) > Yu })).map(u)).concat(x(ec(a / d) * d, i, d).filter((function(t) { return Zu(t % g) > Yu })).map(c)) } return b.lines = function() { return v().map((function(t) { return { type: "LineString", coordinates: t } })) }, b.outline = function() { return { type: "Polygon", coordinates: [f(r).concat(l(o).slice(1), f(n).reverse().slice(1), l(s).reverse().slice(1))] } }, b.extent = function(t) { return arguments.length ? b.extentMajor(t).extentMinor(t) : b.extentMinor() }, b.extentMajor = function(t) { return arguments.length ? (r = +t[0][0], n = +t[1][0], s = +t[0][1], o = +t[1][1], r > n && (t = r, r = n, n = t), s > o && (t = s, s = o, o = t), b.precision(y)) : [ [r, s], [n, o] ] }, b.extentMinor = function(n) { return arguments.length ? (e = +n[0][0], t = +n[1][0], a = +n[0][1], i = +n[1][1], e > t && (n = e, e = t, t = n), a > i && (n = a, a = i, i = n), b.precision(y)) : [ [e, a], [t, i] ] }, b.step = function(t) { return arguments.length ? b.stepMajor(t).stepMinor(t) : b.stepMinor() }, b.stepMajor = function(t) { return arguments.length ? (p = +t[0], g = +t[1], b) : [p, g] }, b.stepMinor = function(t) { return arguments.length ? (h = +t[0], d = +t[1], b) : [h, d] }, b.precision = function(h) { return arguments.length ? (y = +h, u = Ll(a, i, 90), c = Bl(e, t, y), f = Ll(s, o, 90), l = Bl(r, n, y), b) : y }, b.extentMajor([ [-180, -90 + Yu], [180, 90 - Yu] ]).extentMinor([ [-180, -80 - Yu], [180, 80 + Yu] ]) } function Rl() { return Ol()() } var Pl, Fl, ql, jl, Ul = function(t, e) { var n = t[0] * Xu, r = t[1] * Xu, i = e[0] * Xu, a = e[1] * Xu, o = tc(r), s = ac(r), u = tc(a), c = ac(a), f = o * tc(n), l = o * ac(n), h = u * tc(i), d = u * ac(i), p = 2 * fc(sc(lc(a - r) + o * u * lc(i - n))), g = ac(p), y = p ? function(t) { var e = ac(t *= p) / g, n = ac(p - t) / g, r = n * f + e * h, i = n * l + e * d, a = n * s + e * c; return [Qu(i, r) * Ku, Qu(a, sc(r * r + i * i)) * Ku] } : function() { return [n * Ku, r * Ku] }; return y.distance = p, y }, zl = function(t) { return t }, Yl = qu(), Vl = qu(), Hl = { point: hc, lineStart: hc, lineEnd: hc, polygonStart: function() { Hl.lineStart = Gl, Hl.lineEnd = Kl }, polygonEnd: function() { Hl.lineStart = Hl.lineEnd = Hl.point = hc, Yl.add(Zu(Vl)), Vl.reset() }, result: function() { var t = Yl / 2; return Yl.reset(), t } }; function Gl() { Hl.point = $l } function $l(t, e) { Hl.point = Wl, Pl = ql = t, Fl = jl = e } function Wl(t, e) { Vl.add(jl * t - ql * e), ql = t, jl = e } function Kl() { Wl(Pl, Fl) } var Xl = Hl, Zl = 1 / 0, Jl = Zl, Ql = -Zl, th = Ql; var eh, nh, rh, ih, ah = { point: function(t, e) { t < Zl && (Zl = t); t > Ql && (Ql = t); e < Jl && (Jl = e); e > th && (th = e) }, lineStart: hc, lineEnd: hc, polygonStart: hc, polygonEnd: hc, result: function() { var t = [ [Zl, Jl], [Ql, th] ]; return Ql = th = -(Jl = Zl = 1 / 0), t } }, oh = 0, sh = 0, uh = 0, ch = 0, fh = 0, lh = 0, hh = 0, dh = 0, ph = 0, gh = { point: yh, lineStart: bh, lineEnd: _h, polygonStart: function() { gh.lineStart = wh, gh.lineEnd = xh }, polygonEnd: function() { gh.point = yh, gh.lineStart = bh, gh.lineEnd = _h }, result: function() { var t = ph ? [hh / ph, dh / ph] : lh ? [ch / lh, fh / lh] : uh ? [oh / uh, sh / uh] : [NaN, NaN]; return oh = sh = uh = ch = fh = lh = hh = dh = ph = 0, t } }; function yh(t, e) { oh += t, sh += e, ++uh } function bh() { gh.point = vh } function vh(t, e) { gh.point = mh, yh(rh = t, ih = e) } function mh(t, e) { var n = t - rh, r = e - ih, i = sc(n * n + r * r); ch += i * (rh + t) / 2, fh += i * (ih + e) / 2, lh += i, yh(rh = t, ih = e) } function _h() { gh.point = yh } function wh() { gh.point = kh } function xh() { Eh(eh, nh) } function kh(t, e) { gh.point = Eh, yh(eh = rh = t, nh = ih = e) } function Eh(t, e) { var n = t - rh, r = e - ih, i = sc(n * n + r * r); ch += i * (rh + t) / 2, fh += i * (ih + e) / 2, lh += i, hh += (i = ih * t - rh * e) * (rh + t), dh += i * (ih + e), ph += 3 * i, yh(rh = t, ih = e) } var Ah = gh; function Sh(t) { this._context = t } Sh.prototype = { _radius: 4.5, pointRadius: function(t) { return this._radius = t, this }, polygonStart: function() { this._line = 0 }, polygonEnd: function() { this._line = NaN }, lineStart: function() { this._point = 0 }, lineEnd: function() { 0 === this._line && this._context.closePath(), this._point = NaN }, point: function(t, e) { switch (this._point) { case 0: this._context.moveTo(t, e), this._point = 1; break; case 1: this._context.lineTo(t, e); break; default: this._context.moveTo(t + this._radius, e), this._context.arc(t, e, this._radius, 0, Wu) } }, result: hc }; var Mh, Th, Dh, Ch, Nh, Ih = qu(), Lh = { point: hc, lineStart: function() { Lh.point = Bh }, lineEnd: function() { Mh && Oh(Th, Dh), Lh.point = hc }, polygonStart: function() { Mh = !0 }, polygonEnd: function() { Mh = null }, result: function() { var t = +Ih; return Ih.reset(), t } }; function Bh(t, e) { Lh.point = Oh, Th = Ch = t, Dh = Nh = e } function Oh(t, e) { Ch -= t, Nh -= e, Ih.add(sc(Ch * Ch + Nh * Nh)), Ch = t, Nh = e } var Rh = Lh; function Ph() { this._string = [] } function Fh(t) { return "m0," + t + "a" + t + "," + t + " 0 1,1 0," + -2 * t + "a" + t + "," + t + " 0 1,1 0," + 2 * t + "z" } Ph.prototype = { _radius: 4.5, _circle: Fh(4.5), pointRadius: function(t) { return (t = +t) !== this._radius && (this._radius = t, this._circle = null), this }, polygonStart: function() { this._line = 0 }, polygonEnd: function() { this._line = NaN }, lineStart: function() { this._point = 0 }, lineEnd: function() { 0 === this._line && this._string.push("Z"), this._point = NaN }, point: function(t, e) { switch (this._point) { case 0: this._string.push("M", t, ",", e), this._point = 1; break; case 1: this._string.push("L", t, ",", e); break; default: null == this._circle && (this._circle = Fh(this._radius)), this._string.push("M", t, ",", e, this._circle) } }, result: function() { if (this._string.length) { var t = this._string.join(""); return this._string = [], t } return null } }; var qh = function(t, e) { var n, r, i = 4.5; function a(t) { return t && ("function" == typeof i && r.pointRadius(+i.apply(this, arguments)), kc(t, n(r))), r.result() } return a.area = function(t) { return kc(t, n(Xl)), Xl.result() }, a.measure = function(t) { return kc(t, n(Rh)), Rh.result() }, a.bounds = function(t) { return kc(t, n(ah)), ah.result() }, a.centroid = function(t) { return kc(t, n(Ah)), Ah.result() }, a.projection = function(e) { return arguments.length ? (n = null == e ? (t = null, zl) : (t = e).stream, a) : t }, a.context = function(t) { return arguments.length ? (r = null == t ? (e = null, new Ph) : new Sh(e = t), "function" != typeof i && r.pointRadius(i), a) : e }, a.pointRadius = function(t) { return arguments.length ? (i = "function" == typeof t ? t : (r.pointRadius(+t), +t), a) : i }, a.projection(t).context(e) }, jh = function(t) { return { stream: Uh(t) } }; function Uh(t) { return function(e) { var n = new zh; for (var r in t) n[r] = t[r]; return n.stream = e, n } } function zh() {} function Yh(t, e, n) { var r = t.clipExtent && t.clipExtent(); return t.scale(150).translate([0, 0]), null != r && t.clipExtent(null), kc(n, t.stream(ah)), e(ah.result()), null != r && t.clipExtent(r), t } function Vh(t, e, n) { return Yh(t, (function(n) { var r = e[1][0] - e[0][0], i = e[1][1] - e[0][1], a = Math.min(r / (n[1][0] - n[0][0]), i / (n[1][1] - n[0][1])), o = +e[0][0] + (r - a * (n[1][0] + n[0][0])) / 2, s = +e[0][1] + (i - a * (n[1][1] + n[0][1])) / 2; t.scale(150 * a).translate([o, s]) }), n) } function Hh(t, e, n) { return Vh(t, [ [0, 0], e ], n) } function Gh(t, e, n) { return Yh(t, (function(n) { var r = +e, i = r / (n[1][0] - n[0][0]), a = (r - i * (n[1][0] + n[0][0])) / 2, o = -i * n[0][1]; t.scale(150 * i).translate([a, o]) }), n) } function $h(t, e, n) { return Yh(t, (function(n) { var r = +e, i = r / (n[1][1] - n[0][1]), a = -i * n[0][0], o = (r - i * (n[1][1] + n[0][1])) / 2; t.scale(150 * i).translate([a, o]) }), n) } zh.prototype = { constructor: zh, point: function(t, e) { this.stream.point(t, e) }, sphere: function() { this.stream.sphere() }, lineStart: function() { this.stream.lineStart() }, lineEnd: function() { this.stream.lineEnd() }, polygonStart: function() { this.stream.polygonStart() }, polygonEnd: function() { this.stream.polygonEnd() } }; var Wh = 16, Kh = tc(30 * Xu), Xh = function(t, e) { return +e ? function(t, e) { function n(r, i, a, o, s, u, c, f, l, h, d, p, g, y) { var b = c - r, v = f - i, m = b * b + v * v; if (m > 4 * e && g--) { var _ = o + h, w = s + d, x = u + p, k = sc(_ * _ + w * w + x * x), E = fc(x /= k), A = Zu(Zu(x) - 1) < Yu || Zu(a - l) < Yu ? (a + l) / 2 : Qu(w, _), S = t(A, E), M = S[0], T = S[1], D = M - r, C = T - i, N = v * D - b * C; (N * N / m > e || Zu((b * D + v * C) / m - .5) > .3 || o * h + s * d + u * p < Kh) && (n(r, i, a, o, s, u, M, T, A, _ /= k, w /= k, x, g, y), y.point(M, T), n(M, T, A, _, w, x, c, f, l, h, d, p, g, y)) } } return function(e) { var r, i, a, o, s, u, c, f, l, h, d, p, g = { point: y, lineStart: b, lineEnd: m, polygonStart: function() { e.polygonStart(), g.lineStart = _ }, polygonEnd: function() { e.polygonEnd(), g.lineStart = b } }; function y(n, r) { n = t(n, r), e.point(n[0], n[1]) } function b() { f = NaN, g.point = v, e.lineStart() } function v(r, i) { var a = Lc([r, i]), o = t(r, i); n(f, l, c, h, d, p, f = o[0], l = o[1], c = r, h = a[0], d = a[1], p = a[2], Wh, e), e.point(f, l) } function m() { g.point = y, e.lineEnd() } function _() { b(), g.point = w, g.lineEnd = x } function w(t, e) { v(r = t, e), i = f, a = l, o = h, s = d, u = p, g.point = v } function x() { n(f, l, c, h, d, p, i, a, r, o, s, u, Wh, e), g.lineEnd = m, m() } return g } }(t, e) : function(t) { return Uh({ point: function(e, n) { e = t(e, n), this.stream.point(e[0], e[1]) } }) }(t) }; var Zh = Uh({ point: function(t, e) { this.stream.point(t * Xu, e * Xu) } }); function Jh(t, e, n) { function r(r, i) { return [e + t * r, n - t * i] } return r.invert = function(r, i) { return [(r - e) / t, (n - i) / t] }, r } function Qh(t, e, n, r) { var i = tc(r), a = ac(r), o = i * t, s = a * t, u = i / t, c = a / t, f = (a * n - i * e) / t, l = (a * e + i * n) / t; function h(t, r) { return [o * t - s * r + e, n - s * t - o * r] } return h.invert = function(t, e) { return [u * t - c * e + f, l - c * t - u * e] }, h } function td(t) { return ed((function() { return t }))() } function ed(t) { var e, n, r, i, a, o, s, u, c, f, l = 150, h = 480, d = 250, p = 0, g = 0, y = 0, b = 0, v = 0, m = 0, _ = null, w = al, x = null, k = zl, E = .5; function A(t) { return u(t[0] * Xu, t[1] * Xu) } function S(t) { return (t = u.invert(t[0], t[1])) && [t[0] * Ku, t[1] * Ku] } function M() { var t = Qh(l, 0, 0, m).apply(null, e(p, g)), r = (m ? Qh : Jh)(l, h - t[0], d - t[1], m); return n = jf(y, b, v), s = Ff(e, r), u = Ff(n, s), o = Xh(s, E), T() } function T() { return c = f = null, A } return A.stream = function(t) { return c && f === t ? c : c = Zh(function(t) { return Uh({ point: function(e, n) { var r = t(e, n); return this.stream.point(r[0], r[1]) } }) }(n)(w(o(k(f = t))))) }, A.preclip = function(t) { return arguments.length ? (w = t, _ = void 0, T()) : w }, A.postclip = function(t) { return arguments.length ? (k = t, x = r = i = a = null, T()) : k }, A.clipAngle = function(t) { return arguments.length ? (w = +t ? ol(_ = t * Xu) : (_ = null, al), T()) : _ * Ku }, A.clipExtent = function(t) { return arguments.length ? (k = null == t ? (x = r = i = a = null, zl) : fl(x = +t[0][0], r = +t[0][1], i = +t[1][0], a = +t[1][1]), T()) : null == x ? null : [ [x, r], [i, a] ] }, A.scale = function(t) { return arguments.length ? (l = +t, M()) : l }, A.translate = function(t) { return arguments.length ? (h = +t[0], d = +t[1], M()) : [h, d] }, A.center = function(t) { return arguments.length ? (p = t[0] % 360 * Xu, g = t[1] % 360 * Xu, M()) : [p * Ku, g * Ku] }, A.rotate = function(t) { return arguments.length ? (y = t[0] % 360 * Xu, b = t[1] % 360 * Xu, v = t.length > 2 ? t[2] % 360 * Xu : 0, M()) : [y * Ku, b * Ku, v * Ku] }, A.angle = function(t) { return arguments.length ? (m = t % 360 * Xu, M()) : m * Ku }, A.precision = function(t) { return arguments.length ? (o = Xh(s, E = t * t), T()) : sc(E) }, A.fitExtent = function(t, e) { return Vh(A, t, e) }, A.fitSize = function(t, e) { return Hh(A, t, e) }, A.fitWidth = function(t, e) { return Gh(A, t, e) }, A.fitHeight = function(t, e) { return $h(A, t, e) }, function() { return e = t.apply(this, arguments), A.invert = e.invert && S, M() } } function nd(t) { var e = 0, n = Hu / 3, r = ed(t), i = r(e, n); return i.parallels = function(t) { return arguments.length ? r(e = t[0] * Xu, n = t[1] * Xu) : [e * Ku, n * Ku] }, i } function rd(t, e) { var n = ac(t), r = (n + ac(e)) / 2; if (Zu(r) < Yu) return function(t) { var e = tc(t); function n(t, n) { return [t * e, ac(n) / e] } return n.invert = function(t, n) { return [t / e, fc(n * e)] }, n }(t); var i = 1 + n * (2 * r - n), a = sc(i) / r; function o(t, e) { var n = sc(i - 2 * r * ac(e)) / r; return [n * ac(t *= r), a - n * tc(t)] } return o.invert = function(t, e) { var n = a - e; return [Qu(t, Zu(n)) / r * oc(n), fc((i - (t * t + n * n) * r * r) / (2 * r))] }, o } var id = function() { return nd(rd).scale(155.424).center([0, 33.6442]) }, ad = function() { return id().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-.6, 38.7]) }; var od = function() { var t, e, n, r, i, a, o = ad(), s = id().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), u = id().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), c = { point: function(t, e) { a = [t, e] } }; function f(t) { var e = t[0], o = t[1]; return a = null, n.point(e, o), a || (r.point(e, o), a) || (i.point(e, o), a) } function l() { return t = e = null, f } return f.invert = function(t) { var e = o.scale(), n = o.translate(), r = (t[0] - n[0]) / e, i = (t[1] - n[1]) / e; return (i >= .12 && i < .234 && r >= -.425 && r < -.214 ? s : i >= .166 && i < .234 && r >= -.214 && r < -.115 ? u : o).invert(t) }, f.stream = function(n) { return t && e === n ? t : (r = [o.stream(e = n), s.stream(n), u.stream(n)], i = r.length, t = { point: function(t, e) { for (var n = -1; ++n < i;) r[n].point(t, e) }, sphere: function() { for (var t = -1; ++t < i;) r[t].sphere() }, lineStart: function() { for (var t = -1; ++t < i;) r[t].lineStart() }, lineEnd: function() { for (var t = -1; ++t < i;) r[t].lineEnd() }, polygonStart: function() { for (var t = -1; ++t < i;) r[t].polygonStart() }, polygonEnd: function() { for (var t = -1; ++t < i;) r[t].polygonEnd() } }); var r, i }, f.precision = function(t) { return arguments.length ? (o.precision(t), s.precision(t), u.precision(t), l()) : o.precision() }, f.scale = function(t) { return arguments.length ? (o.scale(t), s.scale(.35 * t), u.scale(t), f.translate(o.translate())) : o.scale() }, f.translate = function(t) { if (!arguments.length) return o.translate(); var e = o.scale(), a = +t[0], f = +t[1]; return n = o.translate(t).clipExtent([ [a - .455 * e, f - .238 * e], [a + .455 * e, f + .238 * e] ]).stream(c), r = s.translate([a - .307 * e, f + .201 * e]).clipExtent([ [a - .425 * e + Yu, f + .12 * e + Yu], [a - .214 * e - Yu, f + .234 * e - Yu] ]).stream(c), i = u.translate([a - .205 * e, f + .212 * e]).clipExtent([ [a - .214 * e + Yu, f + .166 * e + Yu], [a - .115 * e - Yu, f + .234 * e - Yu] ]).stream(c), l() }, f.fitExtent = function(t, e) { return Vh(f, t, e) }, f.fitSize = function(t, e) { return Hh(f, t, e) }, f.fitWidth = function(t, e) { return Gh(f, t, e) }, f.fitHeight = function(t, e) { return $h(f, t, e) }, f.scale(1070) }; function sd(t) { return function(e, n) { var r = tc(e), i = tc(n), a = t(r * i); return [a * i * ac(e), a * ac(n)] } } function ud(t) { return function(e, n) { var r = sc(e * e + n * n), i = t(r), a = ac(i), o = tc(i); return [Qu(e * a, r * o), fc(r && n * a / r)] } } var cd = sd((function(t) { return sc(2 / (1 + t)) })); cd.invert = ud((function(t) { return 2 * fc(t / 2) })); var fd = function() { return td(cd).scale(124.75).clipAngle(179.999) }, ld = sd((function(t) { return (t = cc(t)) && t / ac(t) })); ld.invert = ud((function(t) { return t })); var hd = function() { return td(ld).scale(79.4188).clipAngle(179.999) }; function dd(t, e) { return [t, rc(uc((Gu + e) / 2))] } dd.invert = function(t, e) { return [t, 2 * Ju(nc(e)) - Gu] }; var pd = function() { return gd(dd).scale(961 / Wu) }; function gd(t) { var e, n, r, i = td(t), a = i.center, o = i.scale, s = i.translate, u = i.clipExtent, c = null; function f() { var a = Hu * o(), s = i(Vf(i.rotate()).invert([0, 0])); return u(null == c ? [ [s[0] - a, s[1] - a], [s[0] + a, s[1] + a] ] : t === dd ? [ [Math.max(s[0] - a, c), e], [Math.min(s[0] + a, n), r] ] : [ [c, Math.max(s[1] - a, e)], [n, Math.min(s[1] + a, r)] ]) } return i.scale = function(t) { return arguments.length ? (o(t), f()) : o() }, i.translate = function(t) { return arguments.length ? (s(t), f()) : s() }, i.center = function(t) { return arguments.length ? (a(t), f()) : a() }, i.clipExtent = function(t) { return arguments.length ? (null == t ? c = e = n = r = null : (c = +t[0][0], e = +t[0][1], n = +t[1][0], r = +t[1][1]), f()) : null == c ? null : [ [c, e], [n, r] ] }, f() } function yd(t) { return uc((Gu + t) / 2) } function bd(t, e) { var n = tc(t), r = t === e ? ac(t) : rc(n / tc(e)) / rc(yd(e) / yd(t)), i = n * ic(yd(t), r) / r; if (!r) return dd; function a(t, e) { i > 0 ? e < -Gu + Yu && (e = -Gu + Yu) : e > Gu - Yu && (e = Gu - Yu); var n = i / ic(yd(e), r); return [n * ac(r * t), i - n * tc(r * t)] } return a.invert = function(t, e) { var n = i - e, a = oc(r) * sc(t * t + n * n); return [Qu(t, Zu(n)) / r * oc(n), 2 * Ju(ic(i / a, 1 / r)) - Gu] }, a } var vd = function() { return nd(bd).scale(109.5).parallels([30, 30]) }; function md(t, e) { return [t, e] } md.invert = md; var _d = function() { return td(md).scale(152.63) }; function wd(t, e) { var n = tc(t), r = t === e ? ac(t) : (n - tc(e)) / (e - t), i = n / r + t; if (Zu(r) < Yu) return md; function a(t, e) { var n = i - e, a = r * t; return [n * ac(a), i - n * tc(a)] } return a.invert = function(t, e) { var n = i - e; return [Qu(t, Zu(n)) / r * oc(n), i - oc(r) * sc(t * t + n * n)] }, a } var xd = function() { return nd(wd).scale(131.154).center([0, 13.9389]) }, kd = 1.340264, Ed = -.081106, Ad = 893e-6, Sd = .003796, Md = sc(3) / 2; function Td(t, e) { var n = fc(Md * ac(e)), r = n * n, i = r * r * r; return [t * tc(n) / (Md * (kd + 3 * Ed * r + i * (7 * Ad + 9 * Sd * r))), n * (kd + Ed * r + i * (Ad + Sd * r))] } Td.invert = function(t, e) { for (var n, r = e, i = r * r, a = i * i * i, o = 0; o < 12 && (a = (i = (r -= n = (r * (kd + Ed * i + a * (Ad + Sd * i)) - e) / (kd + 3 * Ed * i + a * (7 * Ad + 9 * Sd * i))) * r) * i * i, !(Zu(n) < Vu)); ++o); return [Md * t * (kd + 3 * Ed * i + a * (7 * Ad + 9 * Sd * i)) / tc(r), fc(ac(r) / Md)] }; var Dd = function() { return td(Td).scale(177.158) }; function Cd(t, e) { var n = tc(e), r = tc(t) * n; return [n * ac(t) / r, ac(e) / r] } Cd.invert = ud(Ju); var Nd = function() { return td(Cd).scale(144.049).clipAngle(60) }; function Id(t, e, n, r) { return 1 === t && 1 === e && 0 === n && 0 === r ? zl : Uh({ point: function(i, a) { this.stream.point(i * t + n, a * e + r) } }) } var Ld = function() { var t, e, n, r, i, a, o = 1, s = 0, u = 0, c = 1, f = 1, l = zl, h = null, d = zl; function p() { return r = i = null, a } return a = { stream: function(t) { return r && i === t ? r : r = l(d(i = t)) }, postclip: function(r) { return arguments.length ? (d = r, h = t = e = n = null, p()) : d }, clipExtent: function(r) { return arguments.length ? (d = null == r ? (h = t = e = n = null, zl) : fl(h = +r[0][0], t = +r[0][1], e = +r[1][0], n = +r[1][1]), p()) : null == h ? null : [ [h, t], [e, n] ] }, scale: function(t) { return arguments.length ? (l = Id((o = +t) * c, o * f, s, u), p()) : o }, translate: function(t) { return arguments.length ? (l = Id(o * c, o * f, s = +t[0], u = +t[1]), p()) : [s, u] }, reflectX: function(t) { return arguments.length ? (l = Id(o * (c = t ? -1 : 1), o * f, s, u), p()) : c < 0 }, reflectY: function(t) { return arguments.length ? (l = Id(o * c, o * (f = t ? -1 : 1), s, u), p()) : f < 0 }, fitExtent: function(t, e) { return Vh(a, t, e) }, fitSize: function(t, e) { return Hh(a, t, e) }, fitWidth: function(t, e) { return Gh(a, t, e) }, fitHeight: function(t, e) { return $h(a, t, e) } } }; function Bd(t, e) { var n = e * e, r = n * n; return [t * (.8707 - .131979 * n + r * (r * (.003971 * n - .001529 * r) - .013791)), e * (1.007226 + n * (.015085 + r * (.028874 * n - .044475 - .005916 * r)))] } Bd.invert = function(t, e) { var n, r = e, i = 25; do { var a = r * r, o = a * a; r -= n = (r * (1.007226 + a * (.015085 + o * (.028874 * a - .044475 - .005916 * o))) - e) / (1.007226 + a * (.045255 + o * (.259866 * a - .311325 - .005916 * 11 * o))) } while (Zu(n) > Yu && --i > 0); return [t / (.8707 + (a = r * r) * (a * (a * a * a * (.003971 - .001529 * a) - .013791) - .131979)), r] }; var Od = function() { return td(Bd).scale(175.295) }; function Rd(t, e) { return [tc(e) * ac(t), ac(e)] } Rd.invert = ud(fc); var Pd = function() { return td(Rd).scale(249.5).clipAngle(90 + Yu) }; function Fd(t, e) { var n = tc(e), r = 1 + tc(t) * n; return [n * ac(t) / r, ac(e) / r] } Fd.invert = ud((function(t) { return 2 * Ju(t) })); var qd = function() { return td(Fd).scale(250).clipAngle(142) }; function jd(t, e) { return [rc(uc((Gu + e) / 2)), -t] } jd.invert = function(t, e) { return [-e, 2 * Ju(nc(t)) - Gu] }; var Ud = function() { var t = gd(jd), e = t.center, n = t.rotate; return t.center = function(t) { return arguments.length ? e([-t[1], t[0]]) : [(t = e())[1], -t[0]] }, t.rotate = function(t) { return arguments.length ? n([t[0], t[1], t.length > 2 ? t[2] + 90 : 90]) : [(t = n())[0], t[1], t[2] - 90] }, n([0, 0, 90]).scale(159.155) }; function zd(t, e) { return t.parent === e.parent ? 1 : 2 } function Yd(t, e) { return t + e.x } function Vd(t, e) { return Math.max(t, e.y) } var Hd = function() { var t = zd, e = 1, n = 1, r = !1; function i(i) { var a, o = 0; i.eachAfter((function(e) { var n = e.children; n ? (e.x = function(t) { return t.reduce(Yd, 0) / t.length }(n), e.y = function(t) { return 1 + t.reduce(Vd, 0) }(n)) : (e.x = a ? o += t(e, a) : 0, e.y = 0, a = e) })); var s = function(t) { for (var e; e = t.children;) t = e[0]; return t }(i), u = function(t) { for (var e; e = t.children;) t = e[e.length - 1]; return t }(i), c = s.x - t(s, u) / 2, f = u.x + t(u, s) / 2; return i.eachAfter(r ? function(t) { t.x = (t.x - i.x) * e, t.y = (i.y - t.y) * n } : function(t) { t.x = (t.x - c) / (f - c) * e, t.y = (1 - (i.y ? t.y / i.y : 1)) * n }) } return i.separation = function(e) { return arguments.length ? (t = e, i) : t }, i.size = function(t) { return arguments.length ? (r = !1, e = +t[0], n = +t[1], i) : r ? null : [e, n] }, i.nodeSize = function(t) { return arguments.length ? (r = !0, e = +t[0], n = +t[1], i) : r ? [e, n] : null }, i }; function Gd(t) { var e = 0, n = t.children, r = n && n.length; if (r) for (; --r >= 0;) e += n[r].value; else e = 1; t.value = e } function $d(t, e) { var n, r, i, a, o, s = new Zd(t), u = +t.value && (s.value = t.value), c = [s]; for (null == e && (e = Wd); n = c.pop();) if (u && (n.value = +n.data.value), (i = e(n.data)) && (o = i.length)) for (n.children = new Array(o), a = o - 1; a >= 0; --a) c.push(r = n.children[a] = new Zd(i[a])), r.parent = n, r.depth = n.depth + 1; return s.eachBefore(Xd) } function Wd(t) { return t.children } function Kd(t) { t.data = t.data.data } function Xd(t) { var e = 0; do { t.height = e } while ((t = t.parent) && t.height < ++e) } function Zd(t) { this.data = t, this.depth = this.height = 0, this.parent = null } Zd.prototype = $d.prototype = { constructor: Zd, count: function() { return this.eachAfter(Gd) }, each: function(t) { var e, n, r, i, a = this, o = [a]; do { for (e = o.reverse(), o = []; a = e.pop();) if (t(a), n = a.children) for (r = 0, i = n.length; r < i; ++r) o.push(n[r]) } while (o.length); return this }, eachAfter: function(t) { for (var e, n, r, i = this, a = [i], o = []; i = a.pop();) if (o.push(i), e = i.children) for (n = 0, r = e.length; n < r; ++n) a.push(e[n]); for (; i = o.pop();) t(i); return this }, eachBefore: function(t) { for (var e, n, r = this, i = [r]; r = i.pop();) if (t(r), e = r.children) for (n = e.length - 1; n >= 0; --n) i.push(e[n]); return this }, sum: function(t) { return this.eachAfter((function(e) { for (var n = +t(e.data) || 0, r = e.children, i = r && r.length; --i >= 0;) n += r[i].value; e.value = n })) }, sort: function(t) { return this.eachBefore((function(e) { e.children && e.children.sort(t) })) }, path: function(t) { for (var e = this, n = function(t, e) { if (t === e) return t; var n = t.ancestors(), r = e.ancestors(), i = null; t = n.pop(), e = r.pop(); for (; t === e;) i = t, t = n.pop(), e = r.pop(); return i }(e, t), r = [e]; e !== n;) e = e.parent, r.push(e); for (var i = r.length; t !== n;) r.splice(i, 0, t), t = t.parent; return r }, ancestors: function() { for (var t = this, e = [t]; t = t.parent;) e.push(t); return e }, descendants: function() { var t = []; return this.each((function(e) { t.push(e) })), t }, leaves: function() { var t = []; return this.eachBefore((function(e) { e.children || t.push(e) })), t }, links: function() { var t = this, e = []; return t.each((function(n) { n !== t && e.push({ source: n.parent, target: n }) })), e }, copy: function() { return $d(this).eachBefore(Kd) } }; var Jd = Array.prototype.slice; var Qd = function(t) { for (var e, n, r = 0, i = (t = function(t) { for (var e, n, r = t.length; r;) n = Math.random() * r-- | 0, e = t[r], t[r] = t[n], t[n] = e; return t }(Jd.call(t))).length, a = []; r < i;) e = t[r], n && np(n, e) ? ++r : (n = ip(a = tp(a, e)), r = 0); return n }; function tp(t, e) { var n, r; if (rp(e, t)) return [e]; for (n = 0; n < t.length; ++n) if (ep(e, t[n]) && rp(ap(t[n], e), t)) return [t[n], e]; for (n = 0; n < t.length - 1; ++n) for (r = n + 1; r < t.length; ++r) if (ep(ap(t[n], t[r]), e) && ep(ap(t[n], e), t[r]) && ep(ap(t[r], e), t[n]) && rp(op(t[n], t[r], e), t)) return [t[n], t[r], e]; throw new Error } function ep(t, e) { var n = t.r - e.r, r = e.x - t.x, i = e.y - t.y; return n < 0 || n * n < r * r + i * i } function np(t, e) { var n = t.r - e.r + 1e-6, r = e.x - t.x, i = e.y - t.y; return n > 0 && n * n > r * r + i * i } function rp(t, e) { for (var n = 0; n < e.length; ++n) if (!np(t, e[n])) return !1; return !0 } function ip(t) { switch (t.length) { case 1: return { x: (e = t[0]).x, y: e.y, r: e.r }; case 2: return ap(t[0], t[1]); case 3: return op(t[0], t[1], t[2]) } var e } function ap(t, e) { var n = t.x, r = t.y, i = t.r, a = e.x, o = e.y, s = e.r, u = a - n, c = o - r, f = s - i, l = Math.sqrt(u * u + c * c); return { x: (n + a + u / l * f) / 2, y: (r + o + c / l * f) / 2, r: (l + i + s) / 2 } } function op(t, e, n) { var r = t.x, i = t.y, a = t.r, o = e.x, s = e.y, u = e.r, c = n.x, f = n.y, l = n.r, h = r - o, d = r - c, p = i - s, g = i - f, y = u - a, b = l - a, v = r * r + i * i - a * a, m = v - o * o - s * s + u * u, _ = v - c * c - f * f + l * l, w = d * p - h * g, x = (p * _ - g * m) / (2 * w) - r, k = (g * y - p * b) / w, E = (d * m - h * _) / (2 * w) - i, A = (h * b - d * y) / w, S = k * k + A * A - 1, M = 2 * (a + x * k + E * A), T = x * x + E * E - a * a, D = -(S ? (M + Math.sqrt(M * M - 4 * S * T)) / (2 * S) : T / M); return { x: r + x + k * D, y: i + E + A * D, r: D } } function sp(t, e, n) { var r, i, a, o, s = t.x - e.x, u = t.y - e.y, c = s * s + u * u; c ? (i = e.r + n.r, i *= i, o = t.r + n.r, i > (o *= o) ? (r = (c + o - i) / (2 * c), a = Math.sqrt(Math.max(0, o / c - r * r)), n.x = t.x - r * s - a * u, n.y = t.y - r * u + a * s) : (r = (c + i - o) / (2 * c), a = Math.sqrt(Math.max(0, i / c - r * r)), n.x = e.x + r * s - a * u, n.y = e.y + r * u + a * s)) : (n.x = e.x + n.r, n.y = e.y) } function up(t, e) { var n = t.r + e.r - 1e-6, r = e.x - t.x, i = e.y - t.y; return n > 0 && n * n > r * r + i * i } function cp(t) { var e = t._, n = t.next._, r = e.r + n.r, i = (e.x * n.r + n.x * e.r) / r, a = (e.y * n.r + n.y * e.r) / r; return i * i + a * a } function fp(t) { this._ = t, this.next = null, this.previous = null } function lp(t) { if (!(i = t.length)) return 0; var e, n, r, i, a, o, s, u, c, f, l; if ((e = t[0]).x = 0, e.y = 0, !(i > 1)) return e.r; if (n = t[1], e.x = -n.r, n.x = e.r, n.y = 0, !(i > 2)) return e.r + n.r; sp(n, e, r = t[2]), e = new fp(e), n = new fp(n), r = new fp(r), e.next = r.previous = n, n.next = e.previous = r, r.next = n.previous = e; t: for (s = 3; s < i; ++s) { sp(e._, n._, r = t[s]), r = new fp(r), u = n.next, c = e.previous, f = n._.r, l = e._.r; do { if (f <= l) { if (up(u._, r._)) { n = u, e.next = n, n.previous = e, --s; continue t } f += u._.r, u = u.next } else { if (up(c._, r._)) { (e = c).next = n, n.previous = e, --s; continue t } l += c._.r, c = c.previous } } while (u !== c.next); for (r.previous = e, r.next = n, e.next = n.previous = n = r, a = cp(e); (r = r.next) !== n;)(o = cp(r)) < a && (e = r, a = o); n = e.next } for (e = [n._], r = n; (r = r.next) !== n;) e.push(r._); for (r = Qd(e), s = 0; s < i; ++s)(e = t[s]).x -= r.x, e.y -= r.y; return r.r } var hp = function(t) { return lp(t), t }; function dp(t) { return null == t ? null : pp(t) } function pp(t) { if ("function" != typeof t) throw new Error; return t } function gp() { return 0 } var yp = function(t) { return function() { return t } }; function bp(t) { return Math.sqrt(t.value) } var vp = function() { var t = null, e = 1, n = 1, r = gp; function i(i) { return i.x = e / 2, i.y = n / 2, t ? i.eachBefore(mp(t)).eachAfter(_p(r, .5)).eachBefore(wp(1)) : i.eachBefore(mp(bp)).eachAfter(_p(gp, 1)).eachAfter(_p(r, i.r / Math.min(e, n))).eachBefore(wp(Math.min(e, n) / (2 * i.r))), i } return i.radius = function(e) { return arguments.length ? (t = dp(e), i) : t }, i.size = function(t) { return arguments.length ? (e = +t[0], n = +t[1], i) : [e, n] }, i.padding = function(t) { return arguments.length ? (r = "function" == typeof t ? t : yp(+t), i) : r }, i }; function mp(t) { return function(e) { e.children || (e.r = Math.max(0, +t(e) || 0)) } } function _p(t, e) { return function(n) { if (r = n.children) { var r, i, a, o = r.length, s = t(n) * e || 0; if (s) for (i = 0; i < o; ++i) r[i].r += s; if (a = lp(r), s) for (i = 0; i < o; ++i) r[i].r -= s; n.r = a + s } } } function wp(t) { return function(e) { var n = e.parent; e.r *= t, n && (e.x = n.x + t * e.x, e.y = n.y + t * e.y) } } var xp = function(t) { t.x0 = Math.round(t.x0), t.y0 = Math.round(t.y0), t.x1 = Math.round(t.x1), t.y1 = Math.round(t.y1) }, kp = function(t, e, n, r, i) { for (var a, o = t.children, s = -1, u = o.length, c = t.value && (r - e) / t.value; ++s < u;)(a = o[s]).y0 = n, a.y1 = i, a.x0 = e, a.x1 = e += a.value * c }, Ep = function() { var t = 1, e = 1, n = 0, r = !1; function i(i) { var a = i.height + 1; return i.x0 = i.y0 = n, i.x1 = t, i.y1 = e / a, i.eachBefore(function(t, e) { return function(r) { r.children && kp(r, r.x0, t * (r.depth + 1) / e, r.x1, t * (r.depth + 2) / e); var i = r.x0, a = r.y0, o = r.x1 - n, s = r.y1 - n; o < i && (i = o = (i + o) / 2), s < a && (a = s = (a + s) / 2), r.x0 = i, r.y0 = a, r.x1 = o, r.y1 = s } }(e, a)), r && i.eachBefore(xp), i } return i.round = function(t) { return arguments.length ? (r = !!t, i) : r }, i.size = function(n) { return arguments.length ? (t = +n[0], e = +n[1], i) : [t, e] }, i.padding = function(t) { return arguments.length ? (n = +t, i) : n }, i }, Ap = "$", Sp = { depth: -1 }, Mp = {}; function Tp(t) { return t.id } function Dp(t) { return t.parentId } var Cp = function() { var t = Tp, e = Dp; function n(n) { var r, i, a, o, s, u, c, f = n.length, l = new Array(f), h = {}; for (i = 0; i < f; ++i) r = n[i], s = l[i] = new Zd(r), null != (u = t(r, i, n)) && (u += "") && (h[c = Ap + (s.id = u)] = c in h ? Mp : s); for (i = 0; i < f; ++i) if (s = l[i], null != (u = e(n[i], i, n)) && (u += "")) { if (!(o = h[Ap + u])) throw new Error("missing: " + u); if (o === Mp) throw new Error("ambiguous: " + u); o.children ? o.children.push(s) : o.children = [s], s.parent = o } else { if (a) throw new Error("multiple roots"); a = s } if (!a) throw new Error("no root"); if (a.parent = Sp, a.eachBefore((function(t) { t.depth = t.parent.depth + 1, --f })).eachBefore(Xd), a.parent = null, f > 0) throw new Error("cycle"); return a } return n.id = function(e) { return arguments.length ? (t = pp(e), n) : t }, n.parentId = function(t) { return arguments.length ? (e = pp(t), n) : e }, n }; function Np(t, e) { return t.parent === e.parent ? 1 : 2 } function Ip(t) { var e = t.children; return e ? e[0] : t.t } function Lp(t) { var e = t.children; return e ? e[e.length - 1] : t.t } function Bp(t, e, n) { var r = n / (e.i - t.i); e.c -= r, e.s += n, t.c += r, e.z += n, e.m += n } function Op(t, e, n) { return t.a.parent === e.parent ? t.a : n } function Rp(t, e) { this._ = t, this.parent = null, this.children = null, this.A = null, this.a = this, this.z = 0, this.m = 0, this.c = 0, this.s = 0, this.t = null, this.i = e } Rp.prototype = Object.create(Zd.prototype); var Pp = function() { var t = Np, e = 1, n = 1, r = null; function i(i) { var u = function(t) { for (var e, n, r, i, a, o = new Rp(t, 0), s = [o]; e = s.pop();) if (r = e._.children) for (e.children = new Array(a = r.length), i = a - 1; i >= 0; --i) s.push(n = e.children[i] = new Rp(r[i], i)), n.parent = e; return (o.parent = new Rp(null, 0)).children = [o], o }(i); if (u.eachAfter(a), u.parent.m = -u.z, u.eachBefore(o), r) i.eachBefore(s); else { var c = i, f = i, l = i; i.eachBefore((function(t) { t.x < c.x && (c = t), t.x > f.x && (f = t), t.depth > l.depth && (l = t) })); var h = c === f ? 1 : t(c, f) / 2, d = h - c.x, p = e / (f.x + h + d), g = n / (l.depth || 1); i.eachBefore((function(t) { t.x = (t.x + d) * p, t.y = t.depth * g })) } return i } function a(e) { var n = e.children, r = e.parent.children, i = e.i ? r[e.i - 1] : null; if (n) { ! function(t) { for (var e, n = 0, r = 0, i = t.children, a = i.length; --a >= 0;)(e = i[a]).z += n, e.m += n, n += e.s + (r += e.c) }(e); var a = (n[0].z + n[n.length - 1].z) / 2; i ? (e.z = i.z + t(e._, i._), e.m = e.z - a) : e.z = a } else i && (e.z = i.z + t(e._, i._)); e.parent.A = function(e, n, r) { if (n) { for (var i, a = e, o = e, s = n, u = a.parent.children[0], c = a.m, f = o.m, l = s.m, h = u.m; s = Lp(s), a = Ip(a), s && a;) u = Ip(u), (o = Lp(o)).a = e, (i = s.z + l - a.z - c + t(s._, a._)) > 0 && (Bp(Op(s, e, r), e, i), c += i, f += i), l += s.m, c += a.m, h += u.m, f += o.m; s && !Lp(o) && (o.t = s, o.m += l - f), a && !Ip(u) && (u.t = a, u.m += c - h, r = e) } return r }(e, i, e.parent.A || r[0]) } function o(t) { t._.x = t.z + t.parent.m, t.m += t.parent.m } function s(t) { t.x *= e, t.y = t.depth * n } return i.separation = function(e) { return arguments.length ? (t = e, i) : t }, i.size = function(t) { return arguments.length ? (r = !1, e = +t[0], n = +t[1], i) : r ? null : [e, n] }, i.nodeSize = function(t) { return arguments.length ? (r = !0, e = +t[0], n = +t[1], i) : r ? [e, n] : null }, i }, Fp = function(t, e, n, r, i) { for (var a, o = t.children, s = -1, u = o.length, c = t.value && (i - n) / t.value; ++s < u;)(a = o[s]).x0 = e, a.x1 = r, a.y0 = n, a.y1 = n += a.value * c }, qp = (1 + Math.sqrt(5)) / 2; function jp(t, e, n, r, i, a) { for (var o, s, u, c, f, l, h, d, p, g, y, b = [], v = e.children, m = 0, _ = 0, w = v.length, x = e.value; m < w;) { u = i - n, c = a - r; do { f = v[_++].value } while (!f && _ < w); for (l = h = f, y = f * f * (g = Math.max(c / u, u / c) / (x * t)), p = Math.max(h / y, y / l); _ < w; ++_) { if (f += s = v[_].value, s < l && (l = s), s > h && (h = s), y = f * f * g, (d = Math.max(h / y, y / l)) > p) { f -= s; break } p = d } b.push(o = { value: f, dice: u < c, children: v.slice(m, _) }), o.dice ? kp(o, n, r, i, x ? r += c * f / x : a) : Fp(o, n, r, x ? n += u * f / x : i, a), x -= f, m = _ } return b } var Up = function t(e) { function n(t, n, r, i, a) { jp(e, t, n, r, i, a) } return n.ratio = function(e) { return t((e = +e) > 1 ? e : 1) }, n }(qp), zp = function() { var t = Up, e = !1, n = 1, r = 1, i = [0], a = gp, o = gp, s = gp, u = gp, c = gp; function f(t) { return t.x0 = t.y0 = 0, t.x1 = n, t.y1 = r, t.eachBefore(l), i = [0], e && t.eachBefore(xp), t } function l(e) { var n = i[e.depth], r = e.x0 + n, f = e.y0 + n, l = e.x1 - n, h = e.y1 - n; l < r && (r = l = (r + l) / 2), h < f && (f = h = (f + h) / 2), e.x0 = r, e.y0 = f, e.x1 = l, e.y1 = h, e.children && (n = i[e.depth + 1] = a(e) / 2, r += c(e) - n, f += o(e) - n, (l -= s(e) - n) < r && (r = l = (r + l) / 2), (h -= u(e) - n) < f && (f = h = (f + h) / 2), t(e, r, f, l, h)) } return f.round = function(t) { return arguments.length ? (e = !!t, f) : e }, f.size = function(t) { return arguments.length ? (n = +t[0], r = +t[1], f) : [n, r] }, f.tile = function(e) { return arguments.length ? (t = pp(e), f) : t }, f.padding = function(t) { return arguments.length ? f.paddingInner(t).paddingOuter(t) : f.paddingInner() }, f.paddingInner = function(t) { return arguments.length ? (a = "function" == typeof t ? t : yp(+t), f) : a }, f.paddingOuter = function(t) { return arguments.length ? f.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t) : f.paddingTop() }, f.paddingTop = function(t) { return arguments.length ? (o = "function" == typeof t ? t : yp(+t), f) : o }, f.paddingRight = function(t) { return arguments.length ? (s = "function" == typeof t ? t : yp(+t), f) : s }, f.paddingBottom = function(t) { return arguments.length ? (u = "function" == typeof t ? t : yp(+t), f) : u }, f.paddingLeft = function(t) { return arguments.length ? (c = "function" == typeof t ? t : yp(+t), f) : c }, f }, Yp = function(t, e, n, r, i) { var a, o, s = t.children, u = s.length, c = new Array(u + 1); for (c[0] = o = a = 0; a < u; ++a) c[a + 1] = o += s[a].value; ! function t(e, n, r, i, a, o, u) { if (e >= n - 1) { var f = s[e]; return f.x0 = i, f.y0 = a, f.x1 = o, void(f.y1 = u) } var l = c[e], h = r / 2 + l, d = e + 1, p = n - 1; for (; d < p;) { var g = d + p >>> 1; c[g] < h ? d = g + 1 : p = g } h - c[d - 1] < c[d] - h && e + 1 < d && --d; var y = c[d] - l, b = r - y; if (o - i > u - a) { var v = (i * b + o * y) / r; t(e, d, y, i, a, v, u), t(d, n, b, v, a, o, u) } else { var m = (a * b + u * y) / r; t(e, d, y, i, a, o, m), t(d, n, b, i, m, o, u) } }(0, u, t.value, e, n, r, i) }, Vp = function(t, e, n, r, i) { (1 & t.depth ? Fp : kp)(t, e, n, r, i) }, Hp = function t(e) { function n(t, n, r, i, a) { if ((o = t._squarify) && o.ratio === e) for (var o, s, u, c, f, l = -1, h = o.length, d = t.value; ++l < h;) { for (u = (s = o[l]).children, c = s.value = 0, f = u.length; c < f; ++c) s.value += u[c].value; s.dice ? kp(s, n, r, i, r += (a - r) * s.value / d) : Fp(s, n, r, n += (i - n) * s.value / d, a), d -= s.value } else t._squarify = o = jp(e, t, n, r, i, a), o.ratio = e } return n.ratio = function(e) { return t((e = +e) > 1 ? e : 1) }, n }(qp), Gp = function(t) { var e = t.length; return function(n) { return t[Math.max(0, Math.min(e - 1, Math.floor(n * e)))] } }, $p = function(t, e) { var n = gn(+t, +e); return function(t) { var e = n(t); return e - 360 * Math.floor(e / 360) } }, Wp = function(t, e) { return t = +t, e = +e, function(n) { return Math.round(t * (1 - n) + e * n) } }, Kp = Math.SQRT2; function Xp(t) { return ((t = Math.exp(t)) + 1 / t) / 2 } var Zp = function(t, e) { var n, r, i = t[0], a = t[1], o = t[2], s = e[0], u = e[1], c = e[2], f = s - i, l = u - a, h = f * f + l * l; if (h < 1e-12) r = Math.log(c / o) / Kp, n = function(t) { return [i + t * f, a + t * l, o * Math.exp(Kp * t * r)] }; else { var d = Math.sqrt(h), p = (c * c - o * o + 4 * h) / (2 * o * 2 * d), g = (c * c - o * o - 4 * h) / (2 * c * 2 * d), y = Math.log(Math.sqrt(p * p + 1) - p), b = Math.log(Math.sqrt(g * g + 1) - g); r = (b - y) / Kp, n = function(t) { var e, n = t * r, s = Xp(y), u = o / (2 * d) * (s * (e = Kp * n + y, ((e = Math.exp(2 * e)) - 1) / (e + 1)) - function(t) { return ((t = Math.exp(t)) - 1 / t) / 2 }(y)); return [i + u * f, a + u * l, o * s / Xp(Kp * n + y)] } } return n.duration = 1e3 * r, n }; function Jp(t) { return function(e, n) { var r = t((e = sn(e)).h, (n = sn(n)).h), i = bn(e.s, n.s), a = bn(e.l, n.l), o = bn(e.opacity, n.opacity); return function(t) { return e.h = r(t), e.s = i(t), e.l = a(t), e.opacity = o(t), e + "" } } } var Qp = Jp(gn), tg = Jp(bn); function eg(t, e) { var n = bn((t = Da(t)).l, (e = Da(e)).l), r = bn(t.a, e.a), i = bn(t.b, e.b), a = bn(t.opacity, e.opacity); return function(e) { return t.l = n(e), t.a = r(e), t.b = i(e), t.opacity = a(e), t + "" } } function ng(t) { return function(e, n) { var r = t((e = Pa(e)).h, (n = Pa(n)).h), i = bn(e.c, n.c), a = bn(e.l, n.l), o = bn(e.opacity, n.opacity); return function(t) { return e.h = r(t), e.c = i(t), e.l = a(t), e.opacity = o(t), e + "" } } } var rg = ng(gn), ig = ng(bn); function ag(t) { return function e(n) { function r(e, r) { var i = t((e = Ga(e)).h, (r = Ga(r)).h), a = bn(e.s, r.s), o = bn(e.l, r.l), s = bn(e.opacity, r.opacity); return function(t) { return e.h = i(t), e.s = a(t), e.l = o(Math.pow(t, n)), e.opacity = s(t), e + "" } } return n = +n, r.gamma = e, r }(1) } var og = ag(gn), sg = ag(bn); function ug(t, e) { for (var n = 0, r = e.length - 1, i = e[0], a = new Array(r < 0 ? 0 : r); n < r;) a[n] = t(i, i = e[++n]); return function(t) { var e = Math.max(0, Math.min(r - 1, Math.floor(t *= r))); return a[e](t - e) } } var cg = function(t, e) { for (var n = new Array(e), r = 0; r < e; ++r) n[r] = t(r / (e - 1)); return n }, fg = function(t) { for (var e, n = -1, r = t.length, i = t[r - 1], a = 0; ++n < r;) e = i, i = t[n], a += e[1] * i[0] - e[0] * i[1]; return a / 2 }, lg = function(t) { for (var e, n, r = -1, i = t.length, a = 0, o = 0, s = t[i - 1], u = 0; ++r < i;) e = s, s = t[r], u += n = e[0] * s[1] - s[0] * e[1], a += (e[0] + s[0]) * n, o += (e[1] + s[1]) * n; return [a / (u *= 3), o / u] }, hg = function(t, e, n) { return (e[0] - t[0]) * (n[1] - t[1]) - (e[1] - t[1]) * (n[0] - t[0]) }; function dg(t, e) { return t[0] - e[0] || t[1] - e[1] } function pg(t) { for (var e = t.length, n = [0, 1], r = 2, i = 2; i < e; ++i) { for (; r > 1 && hg(t[n[r - 2]], t[n[r - 1]], t[i]) <= 0;) --r; n[r++] = i } return n.slice(0, r) } var gg = function(t) { if ((n = t.length) < 3) return null; var e, n, r = new Array(n), i = new Array(n); for (e = 0; e < n; ++e) r[e] = [+t[e][0], +t[e][1], e]; for (r.sort(dg), e = 0; e < n; ++e) i[e] = [r[e][0], -r[e][1]]; var a = pg(r), o = pg(i), s = o[0] === a[0], u = o[o.length - 1] === a[a.length - 1], c = []; for (e = a.length - 1; e >= 0; --e) c.push(t[r[a[e]][2]]); for (e = +s; e < o.length - u; ++e) c.push(t[r[o[e]][2]]); return c }, yg = function(t, e) { for (var n, r, i = t.length, a = t[i - 1], o = e[0], s = e[1], u = a[0], c = a[1], f = !1, l = 0; l < i; ++l) n = (a = t[l])[0], (r = a[1]) > s != c > s && o < (u - n) * (s - r) / (c - r) + n && (f = !f), u = n, c = r; return f }, bg = function(t) { for (var e, n, r = -1, i = t.length, a = t[i - 1], o = a[0], s = a[1], u = 0; ++r < i;) e = o, n = s, e -= o = (a = t[r])[0], n -= s = a[1], u += Math.sqrt(e * e + n * n); return u }, vg = function() { return Math.random() }, mg = function t(e) { function n(t, n) { return t = null == t ? 0 : +t, n = null == n ? 1 : +n, 1 === arguments.length ? (n = t, t = 0) : n -= t, function() { return e() * n + t } } return n.source = t, n }(vg), _g = function t(e) { function n(t, n) { var r, i; return t = null == t ? 0 : +t, n = null == n ? 1 : +n, function() { var a; if (null != r) a = r, r = null; else do { r = 2 * e() - 1, a = 2 * e() - 1, i = r * r + a * a } while (!i || i > 1); return t + n * a * Math.sqrt(-2 * Math.log(i) / i) } } return n.source = t, n }(vg), wg = function t(e) { function n() { var t = _g.source(e).apply(this, arguments); return function() { return Math.exp(t()) } } return n.source = t, n }(vg), xg = function t(e) { function n(t) { return function() { for (var n = 0, r = 0; r < t; ++r) n += e(); return n } } return n.source = t, n }(vg), kg = function t(e) { function n(t) { var n = xg.source(e)(t); return function() { return n() / t } } return n.source = t, n }(vg), Eg = function t(e) { function n(t) { return function() { return -Math.log(1 - e()) / t } } return n.source = t, n }(vg); function Ag(t, e) { switch (arguments.length) { case 0: break; case 1: this.range(t); break; default: this.range(e).domain(t) } return this } function Sg(t, e) { switch (arguments.length) { case 0: break; case 1: this.interpolator(t); break; default: this.interpolator(e).domain(t) } return this } var Mg = Array.prototype, Tg = Mg.map, Dg = Mg.slice, Cg = { name: "implicit" }; function Ng() { var t = aa(), e = [], n = [], r = Cg; function i(i) { var a = i + "", o = t.get(a); if (!o) { if (r !== Cg) return r; t.set(a, o = e.push(i)) } return n[(o - 1) % n.length] } return i.domain = function(n) { if (!arguments.length) return e.slice(); e = [], t = aa(); for (var r, a, o = -1, s = n.length; ++o < s;) t.has(a = (r = n[o]) + "") || t.set(a, e.push(r)); return i }, i.range = function(t) { return arguments.length ? (n = Dg.call(t), i) : n.slice() }, i.unknown = function(t) { return arguments.length ? (r = t, i) : r }, i.copy = function() { return Ng(e, n).unknown(r) }, Ag.apply(i, arguments), i } function Ig() { var t, e, n = Ng().unknown(void 0), r = n.domain, i = n.range, a = [0, 1], o = !1, s = 0, u = 0, c = .5; function f() { var n = r().length, f = a[1] < a[0], l = a[f - 0], h = a[1 - f]; t = (h - l) / Math.max(1, n - s + 2 * u), o && (t = Math.floor(t)), l += (h - l - t * (n - s)) * c, e = t * (1 - s), o && (l = Math.round(l), e = Math.round(e)); var d = x(n).map((function(e) { return l + t * e })); return i(f ? d.reverse() : d) } return delete n.unknown, n.domain = function(t) { return arguments.length ? (r(t), f()) : r() }, n.range = function(t) { return arguments.length ? (a = [+t[0], +t[1]], f()) : a.slice() }, n.rangeRound = function(t) { return a = [+t[0], +t[1]], o = !0, f() }, n.bandwidth = function() { return e }, n.step = function() { return t }, n.round = function(t) { return arguments.length ? (o = !!t, f()) : o }, n.padding = function(t) { return arguments.length ? (s = Math.min(1, u = +t), f()) : s }, n.paddingInner = function(t) { return arguments.length ? (s = Math.min(1, t), f()) : s }, n.paddingOuter = function(t) { return arguments.length ? (u = +t, f()) : u }, n.align = function(t) { return arguments.length ? (c = Math.max(0, Math.min(1, t)), f()) : c }, n.copy = function() { return Ig(r(), a).round(o).paddingInner(s).paddingOuter(u).align(c) }, Ag.apply(f(), arguments) } function Lg() { return function t(e) { var n = e.copy; return e.padding = e.paddingOuter, delete e.paddingInner, delete e.paddingOuter, e.copy = function() { return t(n()) }, e }(Ig.apply(null, arguments).paddingInner(1)) } var Bg = function(t) { return function() { return t } }, Og = function(t) { return +t }, Rg = [0, 1]; function Pg(t) { return t } function Fg(t, e) { return (e -= t = +t) ? function(n) { return (n - t) / e } : Bg(isNaN(e) ? NaN : .5) } function qg(t) { var e, n = t[0], r = t[t.length - 1]; return n > r && (e = n, n = r, r = e), function(t) { return Math.max(n, Math.min(r, t)) } } function jg(t, e, n) { var r = t[0], i = t[1], a = e[0], o = e[1]; return i < r ? (r = Fg(i, r), a = n(o, a)) : (r = Fg(r, i), a = n(a, o)), function(t) { return a(r(t)) } } function Ug(t, e, n) { var r = Math.min(t.length, e.length) - 1, i = new Array(r), a = new Array(r), o = -1; for (t[r] < t[0] && (t = t.slice().reverse(), e = e.slice().reverse()); ++o < r;) i[o] = Fg(t[o], t[o + 1]), a[o] = n(e[o], e[o + 1]); return function(e) { var n = u(t, e, 1, r) - 1; return a[n](i[n](e)) } } function zg(t, e) { return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown()) } function Yg() { var t, e, n, r, i, a, o = Rg, s = Rg, u = Bn, c = Pg; function f() { return r = Math.min(o.length, s.length) > 2 ? Ug : jg, i = a = null, l } function l(e) { return isNaN(e = +e) ? n : (i || (i = r(o.map(t), s, u)))(t(c(e))) } return l.invert = function(n) { return c(e((a || (a = r(s, o.map(t), Mn)))(n))) }, l.domain = function(t) { return arguments.length ? (o = Tg.call(t, Og), c === Pg || (c = qg(o)), f()) : o.slice() }, l.range = function(t) { return arguments.length ? (s = Dg.call(t), f()) : s.slice() }, l.rangeRound = function(t) { return s = Dg.call(t), u = Wp, f() }, l.clamp = function(t) { return arguments.length ? (c = t ? qg(o) : Pg, l) : c !== Pg }, l.interpolate = function(t) { return arguments.length ? (u = t, f()) : u }, l.unknown = function(t) { return arguments.length ? (n = t, l) : n }, function(n, r) { return t = n, e = r, f() } } function Vg(t, e) { return Yg()(t, e) } var Hg = function(t, e, n, r) { var i, a = T(t, e, n); switch ((r = xu(null == r ? ",f" : r)).type) { case "s": var o = Math.max(Math.abs(t), Math.abs(e)); return null != r.precision || isNaN(i = Pu(a, o)) || (r.precision = i), Mu(r, o); case "": case "e": case "g": case "p": case "r": null != r.precision || isNaN(i = Fu(a, Math.max(Math.abs(t), Math.abs(e)))) || (r.precision = i - ("e" === r.type)); break; case "f": case "%": null != r.precision || isNaN(i = Ru(a)) || (r.precision = i - 2 * ("%" === r.type)) } return Su(r) }; function Gg(t) { var e = t.domain; return t.ticks = function(t) { var n = e(); return S(n[0], n[n.length - 1], null == t ? 10 : t) }, t.tickFormat = function(t, n) { var r = e(); return Hg(r[0], r[r.length - 1], null == t ? 10 : t, n) }, t.nice = function(n) { null == n && (n = 10); var r, i = e(), a = 0, o = i.length - 1, s = i[a], u = i[o]; return u < s && (r = s, s = u, u = r, r = a, a = o, o = r), (r = M(s, u, n)) > 0 ? r = M(s = Math.floor(s / r) * r, u = Math.ceil(u / r) * r, n) : r < 0 && (r = M(s = Math.ceil(s * r) / r, u = Math.floor(u * r) / r, n)), r > 0 ? (i[a] = Math.floor(s / r) * r, i[o] = Math.ceil(u / r) * r, e(i)) : r < 0 && (i[a] = Math.ceil(s * r) / r, i[o] = Math.floor(u * r) / r, e(i)), t }, t } function $g() { var t = Vg(Pg, Pg); return t.copy = function() { return zg(t, $g()) }, Ag.apply(t, arguments), Gg(t) } function Wg(t) { var e; function n(t) { return isNaN(t = +t) ? e : t } return n.invert = n, n.domain = n.range = function(e) { return arguments.length ? (t = Tg.call(e, Og), n) : t.slice() }, n.unknown = function(t) { return arguments.length ? (e = t, n) : e }, n.copy = function() { return Wg(t).unknown(e) }, t = arguments.length ? Tg.call(t, Og) : [0, 1], Gg(n) } var Kg = function(t, e) { var n, r = 0, i = (t = t.slice()).length - 1, a = t[r], o = t[i]; return o < a && (n = r, r = i, i = n, n = a, a = o, o = n), t[r] = e.floor(a), t[i] = e.ceil(o), t }; function Xg(t) { return Math.log(t) } function Zg(t) { return Math.exp(t) } function Jg(t) { return -Math.log(-t) } function Qg(t) { return -Math.exp(-t) } function ty(t) { return isFinite(t) ? +("1e" + t) : t < 0 ? 0 : t } function ey(t) { return function(e) { return -t(-e) } } function ny(t) { var e, n, r = t(Xg, Zg), i = r.domain, a = 10; function o() { return e = function(t) { return t === Math.E ? Math.log : 10 === t && Math.log10 || 2 === t && Math.log2 || (t = Math.log(t), function(e) { return Math.log(e) / t }) }(a), n = function(t) { return 10 === t ? ty : t === Math.E ? Math.exp : function(e) { return Math.pow(t, e) } }(a), i()[0] < 0 ? (e = ey(e), n = ey(n), t(Jg, Qg)) : t(Xg, Zg), r } return r.base = function(t) { return arguments.length ? (a = +t, o()) : a }, r.domain = function(t) { return arguments.length ? (i(t), o()) : i() }, r.ticks = function(t) { var r, o = i(), s = o[0], u = o[o.length - 1]; (r = u < s) && (h = s, s = u, u = h); var c, f, l, h = e(s), d = e(u), p = null == t ? 10 : +t, g = []; if (!(a % 1) && d - h < p) { if (h = Math.round(h) - 1, d = Math.round(d) + 1, s > 0) { for (; h < d; ++h) for (f = 1, c = n(h); f < a; ++f) if (!((l = c * f) < s)) { if (l > u) break; g.push(l) } } else for (; h < d; ++h) for (f = a - 1, c = n(h); f >= 1; --f) if (!((l = c * f) < s)) { if (l > u) break; g.push(l) } } else g = S(h, d, Math.min(d - h, p)).map(n); return r ? g.reverse() : g }, r.tickFormat = function(t, i) { if (null == i && (i = 10 === a ? ".0e" : ","), "function" != typeof i && (i = Su(i)), t === 1 / 0) return i; null == t && (t = 10); var o = Math.max(1, a * t / r.ticks().length); return function(t) { var r = t / n(Math.round(e(t))); return r * a < a - .5 && (r *= a), r <= o ? i(t) : "" } }, r.nice = function() { return i(Kg(i(), { floor: function(t) { return n(Math.floor(e(t))) }, ceil: function(t) { return n(Math.ceil(e(t))) } })) }, r } function ry() { var t = ny(Yg()).domain([1, 10]); return t.copy = function() { return zg(t, ry()).base(t.base()) }, Ag.apply(t, arguments), t } function iy(t) { return function(e) { return Math.sign(e) * Math.log1p(Math.abs(e / t)) } } function ay(t) { return function(e) { return Math.sign(e) * Math.expm1(Math.abs(e)) * t } } function oy(t) { var e = 1, n = t(iy(e), ay(e)); return n.constant = function(n) { return arguments.length ? t(iy(e = +n), ay(e)) : e }, Gg(n) } function sy() { var t = oy(Yg()); return t.copy = function() { return zg(t, sy()).constant(t.constant()) }, Ag.apply(t, arguments) } function uy(t) { return function(e) { return e < 0 ? -Math.pow(-e, t) : Math.pow(e, t) } } function cy(t) { return t < 0 ? -Math.sqrt(-t) : Math.sqrt(t) } function fy(t) { return t < 0 ? -t * t : t * t } function ly(t) { var e = t(Pg, Pg), n = 1; function r() { return 1 === n ? t(Pg, Pg) : .5 === n ? t(cy, fy) : t(uy(n), uy(1 / n)) } return e.exponent = function(t) { return arguments.length ? (n = +t, r()) : n }, Gg(e) } function hy() { var t = ly(Yg()); return t.copy = function() { return zg(t, hy()).exponent(t.exponent()) }, Ag.apply(t, arguments), t } function dy() { return hy.apply(null, arguments).exponent(.5) } function py() { var t, e = [], n = [], i = []; function a() { var t = 0, r = Math.max(1, n.length); for (i = new Array(r - 1); ++t < r;) i[t - 1] = N(e, t / r); return o } function o(e) { return isNaN(e = +e) ? t : n[u(i, e)] } return o.invertExtent = function(t) { var r = n.indexOf(t); return r < 0 ? [NaN, NaN] : [r > 0 ? i[r - 1] : e[0], r < i.length ? i[r] : e[e.length - 1]] }, o.domain = function(t) { if (!arguments.length) return e.slice(); e = []; for (var n, i = 0, o = t.length; i < o; ++i) null == (n = t[i]) || isNaN(n = +n) || e.push(n); return e.sort(r), a() }, o.range = function(t) { return arguments.length ? (n = Dg.call(t), a()) : n.slice() }, o.unknown = function(e) { return arguments.length ? (t = e, o) : t }, o.quantiles = function() { return i.slice() }, o.copy = function() { return py().domain(e).range(n).unknown(t) }, Ag.apply(o, arguments) } function gy() { var t, e = 0, n = 1, r = 1, i = [.5], a = [0, 1]; function o(e) { return e <= e ? a[u(i, e, 0, r)] : t } function s() { var t = -1; for (i = new Array(r); ++t < r;) i[t] = ((t + 1) * n - (t - r) * e) / (r + 1); return o } return o.domain = function(t) { return arguments.length ? (e = +t[0], n = +t[1], s()) : [e, n] }, o.range = function(t) { return arguments.length ? (r = (a = Dg.call(t)).length - 1, s()) : a.slice() }, o.invertExtent = function(t) { var o = a.indexOf(t); return o < 0 ? [NaN, NaN] : o < 1 ? [e, i[0]] : o >= r ? [i[r - 1], n] : [i[o - 1], i[o]] }, o.unknown = function(e) { return arguments.length ? (t = e, o) : o }, o.thresholds = function() { return i.slice() }, o.copy = function() { return gy().domain([e, n]).range(a).unknown(t) }, Ag.apply(Gg(o), arguments) } function yy() { var t, e = [.5], n = [0, 1], r = 1; function i(i) { return i <= i ? n[u(e, i, 0, r)] : t } return i.domain = function(t) { return arguments.length ? (e = Dg.call(t), r = Math.min(e.length, n.length - 1), i) : e.slice() }, i.range = function(t) { return arguments.length ? (n = Dg.call(t), r = Math.min(e.length, n.length - 1), i) : n.slice() }, i.invertExtent = function(t) { var r = n.indexOf(t); return [e[r - 1], e[r]] }, i.unknown = function(e) { return arguments.length ? (t = e, i) : t }, i.copy = function() { return yy().domain(e).range(n).unknown(t) }, Ag.apply(i, arguments) } var by = new Date, vy = new Date; function my(t, e, n, r) { function i(e) { return t(e = 0 === arguments.length ? new Date : new Date(+e)), e } return i.floor = function(e) { return t(e = new Date(+e)), e }, i.ceil = function(n) { return t(n = new Date(n - 1)), e(n, 1), t(n), n }, i.round = function(t) { var e = i(t), n = i.ceil(t); return t - e < n - t ? e : n }, i.offset = function(t, n) { return e(t = new Date(+t), null == n ? 1 : Math.floor(n)), t }, i.range = function(n, r, a) { var o, s = []; if (n = i.ceil(n), a = null == a ? 1 : Math.floor(a), !(n < r && a > 0)) return s; do { s.push(o = new Date(+n)), e(n, a), t(n) } while (o < n && n < r); return s }, i.filter = function(n) { return my((function(e) { if (e >= e) for (; t(e), !n(e);) e.setTime(e - 1) }), (function(t, r) { if (t >= t) if (r < 0) for (; ++r <= 0;) for (; e(t, -1), !n(t);); else for (; --r >= 0;) for (; e(t, 1), !n(t);); })) }, n && (i.count = function(e, r) { return by.setTime(+e), vy.setTime(+r), t(by), t(vy), Math.floor(n(by, vy)) }, i.every = function(t) { return t = Math.floor(t), isFinite(t) && t > 0 ? t > 1 ? i.filter(r ? function(e) { return r(e) % t == 0 } : function(e) { return i.count(0, e) % t == 0 }) : i : null }), i } var _y = my((function(t) { t.setMonth(0, 1), t.setHours(0, 0, 0, 0) }), (function(t, e) { t.setFullYear(t.getFullYear() + e) }), (function(t, e) { return e.getFullYear() - t.getFullYear() }), (function(t) { return t.getFullYear() })); _y.every = function(t) { return isFinite(t = Math.floor(t)) && t > 0 ? my((function(e) { e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), e.setHours(0, 0, 0, 0) }), (function(e, n) { e.setFullYear(e.getFullYear() + n * t) })) : null }; var wy = _y, xy = _y.range, ky = my((function(t) { t.setDate(1), t.setHours(0, 0, 0, 0) }), (function(t, e) { t.setMonth(t.getMonth() + e) }), (function(t, e) { return e.getMonth() - t.getMonth() + 12 * (e.getFullYear() - t.getFullYear()) }), (function(t) { return t.getMonth() })), Ey = ky, Ay = ky.range, Sy = 6e4, My = 6048e5; function Ty(t) { return my((function(e) { e.setDate(e.getDate() - (e.getDay() + 7 - t) % 7), e.setHours(0, 0, 0, 0) }), (function(t, e) { t.setDate(t.getDate() + 7 * e) }), (function(t, e) { return (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * Sy) / My })) } var Dy = Ty(0), Cy = Ty(1), Ny = Ty(2), Iy = Ty(3), Ly = Ty(4), By = Ty(5), Oy = Ty(6), Ry = Dy.range, Py = Cy.range, Fy = Ny.range, qy = Iy.range, jy = Ly.range, Uy = By.range, zy = Oy.range, Yy = my((function(t) { t.setHours(0, 0, 0, 0) }), (function(t, e) { t.setDate(t.getDate() + e) }), (function(t, e) { return (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * Sy) / 864e5 }), (function(t) { return t.getDate() - 1 })), Vy = Yy, Hy = Yy.range, Gy = my((function(t) { t.setTime(t - t.getMilliseconds() - 1e3 * t.getSeconds() - t.getMinutes() * Sy) }), (function(t, e) { t.setTime(+t + 36e5 * e) }), (function(t, e) { return (e - t) / 36e5 }), (function(t) { return t.getHours() })), $y = Gy, Wy = Gy.range, Ky = my((function(t) { t.setTime(t - t.getMilliseconds() - 1e3 * t.getSeconds()) }), (function(t, e) { t.setTime(+t + e * Sy) }), (function(t, e) { return (e - t) / Sy }), (function(t) { return t.getMinutes() })), Xy = Ky, Zy = Ky.range, Jy = my((function(t) { t.setTime(t - t.getMilliseconds()) }), (function(t, e) { t.setTime(+t + 1e3 * e) }), (function(t, e) { return (e - t) / 1e3 }), (function(t) { return t.getUTCSeconds() })), Qy = Jy, tb = Jy.range, eb = my((function() {}), (function(t, e) { t.setTime(+t + e) }), (function(t, e) { return e - t })); eb.every = function(t) { return t = Math.floor(t), isFinite(t) && t > 0 ? t > 1 ? my((function(e) { e.setTime(Math.floor(e / t) * t) }), (function(e, n) { e.setTime(+e + n * t) }), (function(e, n) { return (n - e) / t })) : eb : null }; var nb = eb, rb = eb.range; function ib(t) { return my((function(e) { e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - t) % 7), e.setUTCHours(0, 0, 0, 0) }), (function(t, e) { t.setUTCDate(t.getUTCDate() + 7 * e) }), (function(t, e) { return (e - t) / My })) } var ab = ib(0), ob = ib(1), sb = ib(2), ub = ib(3), cb = ib(4), fb = ib(5), lb = ib(6), hb = ab.range, db = ob.range, pb = sb.range, gb = ub.range, yb = cb.range, bb = fb.range, vb = lb.range, mb = my((function(t) { t.setUTCHours(0, 0, 0, 0) }), (function(t, e) { t.setUTCDate(t.getUTCDate() + e) }), (function(t, e) { return (e - t) / 864e5 }), (function(t) { return t.getUTCDate() - 1 })), _b = mb, wb = mb.range, xb = my((function(t) { t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0) }), (function(t, e) { t.setUTCFullYear(t.getUTCFullYear() + e) }), (function(t, e) { return e.getUTCFullYear() - t.getUTCFullYear() }), (function(t) { return t.getUTCFullYear() })); xb.every = function(t) { return isFinite(t = Math.floor(t)) && t > 0 ? my((function(e) { e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0) }), (function(e, n) { e.setUTCFullYear(e.getUTCFullYear() + n * t) })) : null }; var kb = xb, Eb = xb.range; function Ab(t) { if (0 <= t.y && t.y < 100) { var e = new Date(-1, t.m, t.d, t.H, t.M, t.S, t.L); return e.setFullYear(t.y), e } return new Date(t.y, t.m, t.d, t.H, t.M, t.S, t.L) } function Sb(t) { if (0 <= t.y && t.y < 100) { var e = new Date(Date.UTC(-1, t.m, t.d, t.H, t.M, t.S, t.L)); return e.setUTCFullYear(t.y), e } return new Date(Date.UTC(t.y, t.m, t.d, t.H, t.M, t.S, t.L)) } function Mb(t, e, n) { return { y: t, m: e, d: n, H: 0, M: 0, S: 0, L: 0 } } function Tb(t) { var e = t.dateTime, n = t.date, r = t.time, i = t.periods, a = t.days, o = t.shortDays, s = t.months, u = t.shortMonths, c = jb(i), f = Ub(i), l = jb(a), h = Ub(a), d = jb(o), p = Ub(o), g = jb(s), y = Ub(s), b = jb(u), v = Ub(u), m = { a: function(t) { return o[t.getDay()] }, A: function(t) { return a[t.getDay()] }, b: function(t) { return u[t.getMonth()] }, B: function(t) { return s[t.getMonth()] }, c: null, d: uv, e: uv, f: dv, H: cv, I: fv, j: lv, L: hv, m: pv, M: gv, p: function(t) { return i[+(t.getHours() >= 12)] }, q: function(t) { return 1 + ~~(t.getMonth() / 3) }, Q: Yv, s: Vv, S: yv, u: bv, U: vv, V: mv, w: _v, W: wv, x: null, X: null, y: xv, Y: kv, Z: Ev, "%": zv }, _ = { a: function(t) { return o[t.getUTCDay()] }, A: function(t) { return a[t.getUTCDay()] }, b: function(t) { return u[t.getUTCMonth()] }, B: function(t) { return s[t.getUTCMonth()] }, c: null, d: Av, e: Av, f: Cv, H: Sv, I: Mv, j: Tv, L: Dv, m: Nv, M: Iv, p: function(t) { return i[+(t.getUTCHours() >= 12)] }, q: function(t) { return 1 + ~~(t.getUTCMonth() / 3) }, Q: Yv, s: Vv, S: Lv, u: Bv, U: Ov, V: Rv, w: Pv, W: Fv, x: null, X: null, y: qv, Y: jv, Z: Uv, "%": zv }, w = { a: function(t, e, n) { var r = d.exec(e.slice(n)); return r ? (t.w = p[r[0].toLowerCase()], n + r[0].length) : -1 }, A: function(t, e, n) { var r = l.exec(e.slice(n)); return r ? (t.w = h[r[0].toLowerCase()], n + r[0].length) : -1 }, b: function(t, e, n) { var r = b.exec(e.slice(n)); return r ? (t.m = v[r[0].toLowerCase()], n + r[0].length) : -1 }, B: function(t, e, n) { var r = g.exec(e.slice(n)); return r ? (t.m = y[r[0].toLowerCase()], n + r[0].length) : -1 }, c: function(t, n, r) { return E(t, e, n, r) }, d: Jb, e: Jb, f: iv, H: tv, I: tv, j: Qb, L: rv, m: Zb, M: ev, p: function(t, e, n) { var r = c.exec(e.slice(n)); return r ? (t.p = f[r[0].toLowerCase()], n + r[0].length) : -1 }, q: Xb, Q: ov, s: sv, S: nv, u: Yb, U: Vb, V: Hb, w: zb, W: Gb, x: function(t, e, r) { return E(t, n, e, r) }, X: function(t, e, n) { return E(t, r, e, n) }, y: Wb, Y: $b, Z: Kb, "%": av }; function x(t, e) { return function(n) { var r, i, a, o = [], s = -1, u = 0, c = t.length; for (n instanceof Date || (n = new Date(+n)); ++s < c;) 37 === t.charCodeAt(s) && (o.push(t.slice(u, s)), null != (i = Bb[r = t.charAt(++s)]) ? r = t.charAt(++s) : i = "e" === r ? " " : "0", (a = e[r]) && (r = a(n, i)), o.push(r), u = s + 1); return o.push(t.slice(u, s)), o.join("") } } function k(t, e) { return function(n) { var r, i, a = Mb(1900, void 0, 1); if (E(a, t, n += "", 0) != n.length) return null; if ("Q" in a) return new Date(a.Q); if ("s" in a) return new Date(1e3 * a.s + ("L" in a ? a.L : 0)); if (!e || "Z" in a || (a.Z = 0), "p" in a && (a.H = a.H % 12 + 12 * a.p), void 0 === a.m && (a.m = "q" in a ? a.q : 0), "V" in a) { if (a.V < 1 || a.V > 53) return null; "w" in a || (a.w = 1), "Z" in a ? (i = (r = Sb(Mb(a.y, 0, 1))).getUTCDay(), r = i > 4 || 0 === i ? ob.ceil(r) : ob(r), r = _b.offset(r, 7 * (a.V - 1)), a.y = r.getUTCFullYear(), a.m = r.getUTCMonth(), a.d = r.getUTCDate() + (a.w + 6) % 7) : (i = (r = Ab(Mb(a.y, 0, 1))).getDay(), r = i > 4 || 0 === i ? Cy.ceil(r) : Cy(r), r = Vy.offset(r, 7 * (a.V - 1)), a.y = r.getFullYear(), a.m = r.getMonth(), a.d = r.getDate() + (a.w + 6) % 7) } else("W" in a || "U" in a) && ("w" in a || (a.w = "u" in a ? a.u % 7 : "W" in a ? 1 : 0), i = "Z" in a ? Sb(Mb(a.y, 0, 1)).getUTCDay() : Ab(Mb(a.y, 0, 1)).getDay(), a.m = 0, a.d = "W" in a ? (a.w + 6) % 7 + 7 * a.W - (i + 5) % 7 : a.w + 7 * a.U - (i + 6) % 7); return "Z" in a ? (a.H += a.Z / 100 | 0, a.M += a.Z % 100, Sb(a)) : Ab(a) } } function E(t, e, n, r) { for (var i, a, o = 0, s = e.length, u = n.length; o < s;) { if (r >= u) return -1; if (37 === (i = e.charCodeAt(o++))) { if (i = e.charAt(o++), !(a = w[i in Bb ? e.charAt(o++) : i]) || (r = a(t, n, r)) < 0) return -1 } else if (i != n.charCodeAt(r++)) return -1 } return r } return (m.x = x(n, m), m.X = x(r, m), m.c = x(e, m), _.x = x(n, _), _.X = x(r, _), _.c = x(e, _), { format: function(t) { var e = x(t += "", m); return e.toString = function() { return t }, e }, parse: function(t) { var e = k(t += "", !1); return e.toString = function() { return t }, e }, utcFormat: function(t) { var e = x(t += "", _); return e.toString = function() { return t }, e }, utcParse: function(t) { var e = k(t += "", !0); return e.toString = function() { return t }, e } }) } var Db, Cb, Nb, Ib, Lb, Bb = { "-": "", _: " ", 0: "0" }, Ob = /^\s*\d+/, Rb = /^%/, Pb = /[\\^$*+?|[\]().{}]/g; function Fb(t, e, n) { var r = t < 0 ? "-" : "", i = (r ? -t : t) + "", a = i.length; return r + (a < n ? new Array(n - a + 1).join(e) + i : i) } function qb(t) { return t.replace(Pb, "\\$&") } function jb(t) { return new RegExp("^(?:" + t.map(qb).join("|") + ")", "i") } function Ub(t) { for (var e = {}, n = -1, r = t.length; ++n < r;) e[t[n].toLowerCase()] = n; return e } function zb(t, e, n) { var r = Ob.exec(e.slice(n, n + 1)); return r ? (t.w = +r[0], n + r[0].length) : -1 } function Yb(t, e, n) { var r = Ob.exec(e.slice(n, n + 1)); return r ? (t.u = +r[0], n + r[0].length) : -1 } function Vb(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.U = +r[0], n + r[0].length) : -1 } function Hb(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.V = +r[0], n + r[0].length) : -1 } function Gb(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.W = +r[0], n + r[0].length) : -1 } function $b(t, e, n) { var r = Ob.exec(e.slice(n, n + 4)); return r ? (t.y = +r[0], n + r[0].length) : -1 } function Wb(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.y = +r[0] + (+r[0] > 68 ? 1900 : 2e3), n + r[0].length) : -1 } function Kb(t, e, n) { var r = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n, n + 6)); return r ? (t.Z = r[1] ? 0 : -(r[2] + (r[3] || "00")), n + r[0].length) : -1 } function Xb(t, e, n) { var r = Ob.exec(e.slice(n, n + 1)); return r ? (t.q = 3 * r[0] - 3, n + r[0].length) : -1 } function Zb(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.m = r[0] - 1, n + r[0].length) : -1 } function Jb(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.d = +r[0], n + r[0].length) : -1 } function Qb(t, e, n) { var r = Ob.exec(e.slice(n, n + 3)); return r ? (t.m = 0, t.d = +r[0], n + r[0].length) : -1 } function tv(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.H = +r[0], n + r[0].length) : -1 } function ev(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.M = +r[0], n + r[0].length) : -1 } function nv(t, e, n) { var r = Ob.exec(e.slice(n, n + 2)); return r ? (t.S = +r[0], n + r[0].length) : -1 } function rv(t, e, n) { var r = Ob.exec(e.slice(n, n + 3)); return r ? (t.L = +r[0], n + r[0].length) : -1 } function iv(t, e, n) { var r = Ob.exec(e.slice(n, n + 6)); return r ? (t.L = Math.floor(r[0] / 1e3), n + r[0].length) : -1 } function av(t, e, n) { var r = Rb.exec(e.slice(n, n + 1)); return r ? n + r[0].length : -1 } function ov(t, e, n) { var r = Ob.exec(e.slice(n)); return r ? (t.Q = +r[0], n + r[0].length) : -1 } function sv(t, e, n) { var r = Ob.exec(e.slice(n)); return r ? (t.s = +r[0], n + r[0].length) : -1 } function uv(t, e) { return Fb(t.getDate(), e, 2) } function cv(t, e) { return Fb(t.getHours(), e, 2) } function fv(t, e) { return Fb(t.getHours() % 12 || 12, e, 2) } function lv(t, e) { return Fb(1 + Vy.count(wy(t), t), e, 3) } function hv(t, e) { return Fb(t.getMilliseconds(), e, 3) } function dv(t, e) { return hv(t, e) + "000" } function pv(t, e) { return Fb(t.getMonth() + 1, e, 2) } function gv(t, e) { return Fb(t.getMinutes(), e, 2) } function yv(t, e) { return Fb(t.getSeconds(), e, 2) } function bv(t) { var e = t.getDay(); return 0 === e ? 7 : e } function vv(t, e) { return Fb(Dy.count(wy(t) - 1, t), e, 2) } function mv(t, e) { var n = t.getDay(); return t = n >= 4 || 0 === n ? Ly(t) : Ly.ceil(t), Fb(Ly.count(wy(t), t) + (4 === wy(t).getDay()), e, 2) } function _v(t) { return t.getDay() } function wv(t, e) { return Fb(Cy.count(wy(t) - 1, t), e, 2) } function xv(t, e) { return Fb(t.getFullYear() % 100, e, 2) } function kv(t, e) { return Fb(t.getFullYear() % 1e4, e, 4) } function Ev(t) { var e = t.getTimezoneOffset(); return (e > 0 ? "-" : (e *= -1, "+")) + Fb(e / 60 | 0, "0", 2) + Fb(e % 60, "0", 2) } function Av(t, e) { return Fb(t.getUTCDate(), e, 2) } function Sv(t, e) { return Fb(t.getUTCHours(), e, 2) } function Mv(t, e) { return Fb(t.getUTCHours() % 12 || 12, e, 2) } function Tv(t, e) { return Fb(1 + _b.count(kb(t), t), e, 3) } function Dv(t, e) { return Fb(t.getUTCMilliseconds(), e, 3) } function Cv(t, e) { return Dv(t, e) + "000" } function Nv(t, e) { return Fb(t.getUTCMonth() + 1, e, 2) } function Iv(t, e) { return Fb(t.getUTCMinutes(), e, 2) } function Lv(t, e) { return Fb(t.getUTCSeconds(), e, 2) } function Bv(t) { var e = t.getUTCDay(); return 0 === e ? 7 : e } function Ov(t, e) { return Fb(ab.count(kb(t) - 1, t), e, 2) } function Rv(t, e) { var n = t.getUTCDay(); return t = n >= 4 || 0 === n ? cb(t) : cb.ceil(t), Fb(cb.count(kb(t), t) + (4 === kb(t).getUTCDay()), e, 2) } function Pv(t) { return t.getUTCDay() } function Fv(t, e) { return Fb(ob.count(kb(t) - 1, t), e, 2) } function qv(t, e) { return Fb(t.getUTCFullYear() % 100, e, 2) } function jv(t, e) { return Fb(t.getUTCFullYear() % 1e4, e, 4) } function Uv() { return "+0000" } function zv() { return "%" } function Yv(t) { return +t } function Vv(t) { return Math.floor(+t / 1e3) } function Hv(t) { return Db = Tb(t), Cb = Db.format, Nb = Db.parse, Ib = Db.utcFormat, Lb = Db.utcParse, Db } Hv({ dateTime: "%x, %X", date: "%-m/%-d/%Y", time: "%-I:%M:%S %p", periods: ["AM", "PM"], days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] }); var Gv = 1e3, $v = 60 * Gv, Wv = 60 * $v, Kv = 24 * Wv, Xv = 7 * Kv, Zv = 30 * Kv, Jv = 365 * Kv; function Qv(t) { return new Date(t) } function tm(t) { return t instanceof Date ? +t : +new Date(+t) } function em(t, e, n, r, a, o, s, u, c) { var f = Vg(Pg, Pg), l = f.invert, h = f.domain, d = c(".%L"), p = c(":%S"), g = c("%I:%M"), y = c("%I %p"), b = c("%a %d"), v = c("%b %d"), m = c("%B"), _ = c("%Y"), w = [ [s, 1, Gv], [s, 5, 5 * Gv], [s, 15, 15 * Gv], [s, 30, 30 * Gv], [o, 1, $v], [o, 5, 5 * $v], [o, 15, 15 * $v], [o, 30, 30 * $v], [a, 1, Wv], [a, 3, 3 * Wv], [a, 6, 6 * Wv], [a, 12, 12 * Wv], [r, 1, Kv], [r, 2, 2 * Kv], [n, 1, Xv], [e, 1, Zv], [e, 3, 3 * Zv], [t, 1, Jv] ]; function x(i) { return (s(i) < i ? d : o(i) < i ? p : a(i) < i ? g : r(i) < i ? y : e(i) < i ? n(i) < i ? b : v : t(i) < i ? m : _)(i) } function k(e, n, r, a) { if (null == e && (e = 10), "number" == typeof e) { var o = Math.abs(r - n) / e, s = i((function(t) { return t[2] })).right(w, o); s === w.length ? (a = T(n / Jv, r / Jv, e), e = t) : s ? (a = (s = w[o / w[s - 1][2] < w[s][2] / o ? s - 1 : s])[1], e = s[0]) : (a = Math.max(T(n, r, e), 1), e = u) } return null == a ? e : e.every(a) } return f.invert = function(t) { return new Date(l(t)) }, f.domain = function(t) { return arguments.length ? h(Tg.call(t, tm)) : h().map(Qv) }, f.ticks = function(t, e) { var n, r = h(), i = r[0], a = r[r.length - 1], o = a < i; return o && (n = i, i = a, a = n), n = (n = k(t, i, a, e)) ? n.range(i, a + 1) : [], o ? n.reverse() : n }, f.tickFormat = function(t, e) { return null == e ? x : c(e) }, f.nice = function(t, e) { var n = h(); return (t = k(t, n[0], n[n.length - 1], e)) ? h(Kg(n, t)) : f }, f.copy = function() { return zg(f, em(t, e, n, r, a, o, s, u, c)) }, f } var nm = function() { return Ag.apply(em(wy, Ey, Dy, Vy, $y, Xy, Qy, nb, Cb).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments) }, rm = my((function(t) { t.setUTCDate(1), t.setUTCHours(0, 0, 0, 0) }), (function(t, e) { t.setUTCMonth(t.getUTCMonth() + e) }), (function(t, e) { return e.getUTCMonth() - t.getUTCMonth() + 12 * (e.getUTCFullYear() - t.getUTCFullYear()) }), (function(t) { return t.getUTCMonth() })), im = rm, am = rm.range, om = my((function(t) { t.setUTCMinutes(0, 0, 0) }), (function(t, e) { t.setTime(+t + 36e5 * e) }), (function(t, e) { return (e - t) / 36e5 }), (function(t) { return t.getUTCHours() })), sm = om, um = om.range, cm = my((function(t) { t.setUTCSeconds(0, 0) }), (function(t, e) { t.setTime(+t + e * Sy) }), (function(t, e) { return (e - t) / Sy }), (function(t) { return t.getUTCMinutes() })), fm = cm, lm = cm.range, hm = function() { return Ag.apply(em(kb, im, ab, _b, sm, fm, Qy, nb, Ib).domain([Date.UTC(2e3, 0, 1), Date.UTC(2e3, 0, 2)]), arguments) }; function dm() { var t, e, n, r, i, a = 0, o = 1, s = Pg, u = !1; function c(e) { return isNaN(e = +e) ? i : s(0 === n ? .5 : (e = (r(e) - t) * n, u ? Math.max(0, Math.min(1, e)) : e)) } return c.domain = function(i) { return arguments.length ? (t = r(a = +i[0]), e = r(o = +i[1]), n = t === e ? 0 : 1 / (e - t), c) : [a, o] }, c.clamp = function(t) { return arguments.length ? (u = !!t, c) : u }, c.interpolator = function(t) { return arguments.length ? (s = t, c) : s }, c.unknown = function(t) { return arguments.length ? (i = t, c) : i }, function(i) { return r = i, t = i(a), e = i(o), n = t === e ? 0 : 1 / (e - t), c } } function pm(t, e) { return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown()) } function gm() { var t = Gg(dm()(Pg)); return t.copy = function() { return pm(t, gm()) }, Sg.apply(t, arguments) } function ym() { var t = ny(dm()).domain([1, 10]); return t.copy = function() { return pm(t, ym()).base(t.base()) }, Sg.apply(t, arguments) } function bm() { var t = oy(dm()); return t.copy = function() { return pm(t, bm()).constant(t.constant()) }, Sg.apply(t, arguments) } function vm() { var t = ly(dm()); return t.copy = function() { return pm(t, vm()).exponent(t.exponent()) }, Sg.apply(t, arguments) } function mm() { return vm.apply(null, arguments).exponent(.5) } function _m() { var t = [], e = Pg; function n(n) { if (!isNaN(n = +n)) return e((u(t, n) - 1) / (t.length - 1)) } return n.domain = function(e) { if (!arguments.length) return t.slice(); t = []; for (var i, a = 0, o = e.length; a < o; ++a) null == (i = e[a]) || isNaN(i = +i) || t.push(i); return t.sort(r), n }, n.interpolator = function(t) { return arguments.length ? (e = t, n) : e }, n.copy = function() { return _m(e).domain(t) }, Sg.apply(n, arguments) } function wm() { var t, e, n, r, i, a, o, s = 0, u = .5, c = 1, f = Pg, l = !1; function h(t) { return isNaN(t = +t) ? o : (t = .5 + ((t = +a(t)) - e) * (t < e ? r : i), f(l ? Math.max(0, Math.min(1, t)) : t)) } return h.domain = function(o) { return arguments.length ? (t = a(s = +o[0]), e = a(u = +o[1]), n = a(c = +o[2]), r = t === e ? 0 : .5 / (e - t), i = e === n ? 0 : .5 / (n - e), h) : [s, u, c] }, h.clamp = function(t) { return arguments.length ? (l = !!t, h) : l }, h.interpolator = function(t) { return arguments.length ? (f = t, h) : f }, h.unknown = function(t) { return arguments.length ? (o = t, h) : o }, function(o) { return a = o, t = o(s), e = o(u), n = o(c), r = t === e ? 0 : .5 / (e - t), i = e === n ? 0 : .5 / (n - e), h } } function xm() { var t = Gg(wm()(Pg)); return t.copy = function() { return pm(t, xm()) }, Sg.apply(t, arguments) } function km() { var t = ny(wm()).domain([.1, 1, 10]); return t.copy = function() { return pm(t, km()).base(t.base()) }, Sg.apply(t, arguments) } function Em() { var t = oy(wm()); return t.copy = function() { return pm(t, Em()).constant(t.constant()) }, Sg.apply(t, arguments) } function Am() { var t = ly(wm()); return t.copy = function() { return pm(t, Am()).exponent(t.exponent()) }, Sg.apply(t, arguments) } function Sm() { return Am.apply(null, arguments).exponent(.5) } var Mm = function(t) { for (var e = t.length / 6 | 0, n = new Array(e), r = 0; r < e;) n[r] = "#" + t.slice(6 * r, 6 * ++r); return n }, Tm = Mm("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"), Dm = Mm("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"), Cm = Mm("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"), Nm = Mm("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"), Im = Mm("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"), Lm = Mm("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"), Bm = Mm("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"), Om = Mm("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"), Rm = Mm("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"), Pm = Mm("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"), Fm = function(t) { return _n(t[t.length - 1]) }, qm = new Array(3).concat("d8b365f5f5f55ab4ac", "a6611adfc27d80cdc1018571", "a6611adfc27df5f5f580cdc1018571", "8c510ad8b365f6e8c3c7eae55ab4ac01665e", "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Mm), jm = Fm(qm), Um = new Array(3).concat("af8dc3f7f7f77fbf7b", "7b3294c2a5cfa6dba0008837", "7b3294c2a5cff7f7f7a6dba0008837", "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Mm), zm = Fm(Um), Ym = new Array(3).concat("e9a3c9f7f7f7a1d76a", "d01c8bf1b6dab8e1864dac26", "d01c8bf1b6daf7f7f7b8e1864dac26", "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Mm), Vm = Fm(Ym), Hm = new Array(3).concat("998ec3f7f7f7f1a340", "5e3c99b2abd2fdb863e66101", "5e3c99b2abd2f7f7f7fdb863e66101", "542788998ec3d8daebfee0b6f1a340b35806", "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Mm), Gm = Fm(Hm), $m = new Array(3).concat("ef8a62f7f7f767a9cf", "ca0020f4a58292c5de0571b0", "ca0020f4a582f7f7f792c5de0571b0", "b2182bef8a62fddbc7d1e5f067a9cf2166ac", "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Mm), Wm = Fm($m), Km = new Array(3).concat("ef8a62ffffff999999", "ca0020f4a582bababa404040", "ca0020f4a582ffffffbababa404040", "b2182bef8a62fddbc7e0e0e09999994d4d4d", "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Mm), Xm = Fm(Km), Zm = new Array(3).concat("fc8d59ffffbf91bfdb", "d7191cfdae61abd9e92c7bb6", "d7191cfdae61ffffbfabd9e92c7bb6", "d73027fc8d59fee090e0f3f891bfdb4575b4", "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Mm), Jm = Fm(Zm), Qm = new Array(3).concat("fc8d59ffffbf91cf60", "d7191cfdae61a6d96a1a9641", "d7191cfdae61ffffbfa6d96a1a9641", "d73027fc8d59fee08bd9ef8b91cf601a9850", "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Mm), t_ = Fm(Qm), e_ = new Array(3).concat("fc8d59ffffbf99d594", "d7191cfdae61abdda42b83ba", "d7191cfdae61ffffbfabdda42b83ba", "d53e4ffc8d59fee08be6f59899d5943288bd", "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Mm), n_ = Fm(e_), r_ = new Array(3).concat("e5f5f999d8c92ca25f", "edf8fbb2e2e266c2a4238b45", "edf8fbb2e2e266c2a42ca25f006d2c", "edf8fbccece699d8c966c2a42ca25f006d2c", "edf8fbccece699d8c966c2a441ae76238b45005824", "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Mm), i_ = Fm(r_), a_ = new Array(3).concat("e0ecf49ebcda8856a7", "edf8fbb3cde38c96c688419d", "edf8fbb3cde38c96c68856a7810f7c", "edf8fbbfd3e69ebcda8c96c68856a7810f7c", "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Mm), o_ = Fm(a_), s_ = new Array(3).concat("e0f3dba8ddb543a2ca", "f0f9e8bae4bc7bccc42b8cbe", "f0f9e8bae4bc7bccc443a2ca0868ac", "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Mm), u_ = Fm(s_), c_ = new Array(3).concat("fee8c8fdbb84e34a33", "fef0d9fdcc8afc8d59d7301f", "fef0d9fdcc8afc8d59e34a33b30000", "fef0d9fdd49efdbb84fc8d59e34a33b30000", "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Mm), f_ = Fm(c_), l_ = new Array(3).concat("ece2f0a6bddb1c9099", "f6eff7bdc9e167a9cf02818a", "f6eff7bdc9e167a9cf1c9099016c59", "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Mm), h_ = Fm(l_), d_ = new Array(3).concat("ece7f2a6bddb2b8cbe", "f1eef6bdc9e174a9cf0570b0", "f1eef6bdc9e174a9cf2b8cbe045a8d", "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Mm), p_ = Fm(d_), g_ = new Array(3).concat("e7e1efc994c7dd1c77", "f1eef6d7b5d8df65b0ce1256", "f1eef6d7b5d8df65b0dd1c77980043", "f1eef6d4b9dac994c7df65b0dd1c77980043", "f1eef6d4b9dac994c7df65b0e7298ace125691003f", "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Mm), y_ = Fm(g_), b_ = new Array(3).concat("fde0ddfa9fb5c51b8a", "feebe2fbb4b9f768a1ae017e", "feebe2fbb4b9f768a1c51b8a7a0177", "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Mm), v_ = Fm(b_), m_ = new Array(3).concat("edf8b17fcdbb2c7fb8", "ffffcca1dab441b6c4225ea8", "ffffcca1dab441b6c42c7fb8253494", "ffffccc7e9b47fcdbb41b6c42c7fb8253494", "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Mm), __ = Fm(m_), w_ = new Array(3).concat("f7fcb9addd8e31a354", "ffffccc2e69978c679238443", "ffffccc2e69978c67931a354006837", "ffffccd9f0a3addd8e78c67931a354006837", "ffffccd9f0a3addd8e78c67941ab5d238443005a32", "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Mm), x_ = Fm(w_), k_ = new Array(3).concat("fff7bcfec44fd95f0e", "ffffd4fed98efe9929cc4c02", "ffffd4fed98efe9929d95f0e993404", "ffffd4fee391fec44ffe9929d95f0e993404", "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Mm), E_ = Fm(k_), A_ = new Array(3).concat("ffeda0feb24cf03b20", "ffffb2fecc5cfd8d3ce31a1c", "ffffb2fecc5cfd8d3cf03b20bd0026", "ffffb2fed976feb24cfd8d3cf03b20bd0026", "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Mm), S_ = Fm(A_), M_ = new Array(3).concat("deebf79ecae13182bd", "eff3ffbdd7e76baed62171b5", "eff3ffbdd7e76baed63182bd08519c", "eff3ffc6dbef9ecae16baed63182bd08519c", "eff3ffc6dbef9ecae16baed64292c62171b5084594", "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Mm), T_ = Fm(M_), D_ = new Array(3).concat("e5f5e0a1d99b31a354", "edf8e9bae4b374c476238b45", "edf8e9bae4b374c47631a354006d2c", "edf8e9c7e9c0a1d99b74c47631a354006d2c", "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Mm), C_ = Fm(D_), N_ = new Array(3).concat("f0f0f0bdbdbd636363", "f7f7f7cccccc969696525252", "f7f7f7cccccc969696636363252525", "f7f7f7d9d9d9bdbdbd969696636363252525", "f7f7f7d9d9d9bdbdbd969696737373525252252525", "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Mm), I_ = Fm(N_), L_ = new Array(3).concat("efedf5bcbddc756bb1", "f2f0f7cbc9e29e9ac86a51a3", "f2f0f7cbc9e29e9ac8756bb154278f", "f2f0f7dadaebbcbddc9e9ac8756bb154278f", "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Mm), B_ = Fm(L_), O_ = new Array(3).concat("fee0d2fc9272de2d26", "fee5d9fcae91fb6a4acb181d", "fee5d9fcae91fb6a4ade2d26a50f15", "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Mm), R_ = Fm(O_), P_ = new Array(3).concat("fee6cefdae6be6550d", "feeddefdbe85fd8d3cd94701", "feeddefdbe85fd8d3ce6550da63603", "feeddefdd0a2fdae6bfd8d3ce6550da63603", "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Mm), F_ = Fm(P_), q_ = function(t) { return t = Math.max(0, Math.min(1, t)), "rgb(" + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - 2710.57 * t))))))) + ", " + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - 67.37 * t))))))) + ", " + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - 2475.67 * t))))))) + ")" }, j_ = sg(Ga(300, .5, 0), Ga(-240, .5, 1)), U_ = sg(Ga(-100, .75, .35), Ga(80, 1.5, .8)), z_ = sg(Ga(260, .75, .35), Ga(80, 1.5, .8)), Y_ = Ga(), V_ = function(t) { (t < 0 || t > 1) && (t -= Math.floor(t)); var e = Math.abs(t - .5); return Y_.h = 360 * t - 100, Y_.s = 1.5 - 1.5 * e, Y_.l = .8 - .9 * e, Y_ + "" }, H_ = Qe(), G_ = Math.PI / 3, $_ = 2 * Math.PI / 3, W_ = function(t) { var e; return t = (.5 - t) * Math.PI, H_.r = 255 * (e = Math.sin(t)) * e, H_.g = 255 * (e = Math.sin(t + G_)) * e, H_.b = 255 * (e = Math.sin(t + $_)) * e, H_ + "" }, K_ = function(t) { return t = Math.max(0, Math.min(1, t)), "rgb(" + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - 14825.05 * t))))))) + ", " + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + 707.56 * t))))))) + ", " + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - 6838.66 * t))))))) + ")" }; function X_(t) { var e = t.length; return function(n) { return t[Math.max(0, Math.min(e - 1, Math.floor(n * e)))] } } var Z_ = X_(Mm("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")), J_ = X_(Mm("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")), Q_ = X_(Mm("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")), tw = X_(Mm("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")), ew = function(t) { return Te(ue(t).call(document.documentElement)) }, nw = 0; function rw() { return new iw } function iw() { this._ = "@" + (++nw).toString(36) } iw.prototype = rw.prototype = { constructor: iw, get: function(t) { for (var e = this._; !(e in t);) if (!(t = t.parentNode)) return; return t[e] }, set: function(t, e) { return t[this._] = e }, remove: function(t) { return this._ in t && delete t[this._] }, toString: function() { return this._ } }; var aw = function(t) { return "string" == typeof t ? new Ae([document.querySelectorAll(t)], [document.documentElement]) : new Ae([null == t ? [] : t], Ee) }, ow = function(t, e) { null == e && (e = On().touches); for (var n = 0, r = e ? e.length : 0, i = new Array(r); n < r; ++n) i[n] = Rn(t, e[n]); return i }, sw = function(t) { return function() { return t } }, uw = Math.abs, cw = Math.atan2, fw = Math.cos, lw = Math.max, hw = Math.min, dw = Math.sin, pw = Math.sqrt, gw = 1e-12, yw = Math.PI, bw = yw / 2, vw = 2 * yw; function mw(t) { return t >= 1 ? bw : t <= -1 ? -bw : Math.asin(t) } function _w(t) { return t.innerRadius } function ww(t) { return t.outerRadius } function xw(t) { return t.startAngle } function kw(t) { return t.endAngle } function Ew(t) { return t && t.padAngle } function Aw(t, e, n, r, i, a, o) { var s = t - n, u = e - r, c = (o ? a : -a) / pw(s * s + u * u), f = c * u, l = -c * s, h = t + f, d = e + l, p = n + f, g = r + l, y = (h + p) / 2, b = (d + g) / 2, v = p - h, m = g - d, _ = v * v + m * m, w = i - a, x = h * g - p * d, k = (m < 0 ? -1 : 1) * pw(lw(0, w * w * _ - x * x)), E = (x * m - v * k) / _, A = (-x * v - m * k) / _, S = (x * m + v * k) / _, M = (-x * v + m * k) / _, T = E - y, D = A - b, C = S - y, N = M - b; return T * T + D * D > C * C + N * N && (E = S, A = M), { cx: E, cy: A, x01: -f, y01: -l, x11: E * (i / w - 1), y11: A * (i / w - 1) } } var Sw = function() { var t = _w, e = ww, n = sw(0), r = null, i = xw, a = kw, o = Ew, s = null; function u() { var u, c, f, l = +t.apply(this, arguments), h = +e.apply(this, arguments), d = i.apply(this, arguments) - bw, p = a.apply(this, arguments) - bw, g = uw(p - d), y = p > d; if (s || (s = u = Xi()), h < l && (c = h, h = l, l = c), h > gw) if (g > vw - gw) s.moveTo(h * fw(d), h * dw(d)), s.arc(0, 0, h, d, p, !y), l > gw && (s.moveTo(l * fw(p), l * dw(p)), s.arc(0, 0, l, p, d, y)); else { var b, v, m = d, _ = p, w = d, x = p, k = g, E = g, A = o.apply(this, arguments) / 2, S = A > gw && (r ? +r.apply(this, arguments) : pw(l * l + h * h)), M = hw(uw(h - l) / 2, +n.apply(this, arguments)), T = M, D = M; if (S > gw) { var C = mw(S / l * dw(A)), N = mw(S / h * dw(A)); (k -= 2 * C) > gw ? (w += C *= y ? 1 : -1, x -= C) : (k = 0, w = x = (d + p) / 2), (E -= 2 * N) > gw ? (m += N *= y ? 1 : -1, _ -= N) : (E = 0, m = _ = (d + p) / 2) } var I = h * fw(m), L = h * dw(m), B = l * fw(x), O = l * dw(x); if (M > gw) { var R, P = h * fw(_), F = h * dw(_), q = l * fw(w), j = l * dw(w); if (g < yw && (R = function(t, e, n, r, i, a, o, s) { var u = n - t, c = r - e, f = o - i, l = s - a, h = l * u - f * c; if (!(h * h < gw)) return [t + (h = (f * (e - a) - l * (t - i)) / h) * u, e + h * c] }(I, L, q, j, P, F, B, O))) { var U = I - R[0], z = L - R[1], Y = P - R[0], V = F - R[1], H = 1 / dw(((f = (U * Y + z * V) / (pw(U * U + z * z) * pw(Y * Y + V * V))) > 1 ? 0 : f < -1 ? yw : Math.acos(f)) / 2), G = pw(R[0] * R[0] + R[1] * R[1]); T = hw(M, (l - G) / (H - 1)), D = hw(M, (h - G) / (H + 1)) } } E > gw ? D > gw ? (b = Aw(q, j, I, L, h, D, y), v = Aw(P, F, B, O, h, D, y), s.moveTo(b.cx + b.x01, b.cy + b.y01), D < M ? s.arc(b.cx, b.cy, D, cw(b.y01, b.x01), cw(v.y01, v.x01), !y) : (s.arc(b.cx, b.cy, D, cw(b.y01, b.x01), cw(b.y11, b.x11), !y), s.arc(0, 0, h, cw(b.cy + b.y11, b.cx + b.x11), cw(v.cy + v.y11, v.cx + v.x11), !y), s.arc(v.cx, v.cy, D, cw(v.y11, v.x11), cw(v.y01, v.x01), !y))) : (s.moveTo(I, L), s.arc(0, 0, h, m, _, !y)) : s.moveTo(I, L), l > gw && k > gw ? T > gw ? (b = Aw(B, O, P, F, l, -T, y), v = Aw(I, L, q, j, l, -T, y), s.lineTo(b.cx + b.x01, b.cy + b.y01), T < M ? s.arc(b.cx, b.cy, T, cw(b.y01, b.x01), cw(v.y01, v.x01), !y) : (s.arc(b.cx, b.cy, T, cw(b.y01, b.x01), cw(b.y11, b.x11), !y), s.arc(0, 0, l, cw(b.cy + b.y11, b.cx + b.x11), cw(v.cy + v.y11, v.cx + v.x11), y), s.arc(v.cx, v.cy, T, cw(v.y11, v.x11), cw(v.y01, v.x01), !y))) : s.arc(0, 0, l, x, w, y) : s.lineTo(B, O) } else s.moveTo(0, 0); if (s.closePath(), u) return s = null, u + "" || null } return u.centroid = function() { var n = (+t.apply(this, arguments) + +e.apply(this, arguments)) / 2, r = (+i.apply(this, arguments) + +a.apply(this, arguments)) / 2 - yw / 2; return [fw(r) * n, dw(r) * n] }, u.innerRadius = function(e) { return arguments.length ? (t = "function" == typeof e ? e : sw(+e), u) : t }, u.outerRadius = function(t) { return arguments.length ? (e = "function" == typeof t ? t : sw(+t), u) : e }, u.cornerRadius = function(t) { return arguments.length ? (n = "function" == typeof t ? t : sw(+t), u) : n }, u.padRadius = function(t) { return arguments.length ? (r = null == t ? null : "function" == typeof t ? t : sw(+t), u) : r }, u.startAngle = function(t) { return arguments.length ? (i = "function" == typeof t ? t : sw(+t), u) : i }, u.endAngle = function(t) { return arguments.length ? (a = "function" == typeof t ? t : sw(+t), u) : a }, u.padAngle = function(t) { return arguments.length ? (o = "function" == typeof t ? t : sw(+t), u) : o }, u.context = function(t) { return arguments.length ? (s = null == t ? null : t, u) : s }, u }; function Mw(t) { this._context = t } Mw.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._point = 0 }, lineEnd: function() { (this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); break; case 1: this._point = 2; default: this._context.lineTo(t, e) } } }; var Tw = function(t) { return new Mw(t) }; function Dw(t) { return t[0] } function Cw(t) { return t[1] } var Nw = function() { var t = Dw, e = Cw, n = sw(!0), r = null, i = Tw, a = null; function o(o) { var s, u, c, f = o.length, l = !1; for (null == r && (a = i(c = Xi())), s = 0; s <= f; ++s) !(s < f && n(u = o[s], s, o)) === l && ((l = !l) ? a.lineStart() : a.lineEnd()), l && a.point(+t(u, s, o), +e(u, s, o)); if (c) return a = null, c + "" || null } return o.x = function(e) { return arguments.length ? (t = "function" == typeof e ? e : sw(+e), o) : t }, o.y = function(t) { return arguments.length ? (e = "function" == typeof t ? t : sw(+t), o) : e }, o.defined = function(t) { return arguments.length ? (n = "function" == typeof t ? t : sw(!!t), o) : n }, o.curve = function(t) { return arguments.length ? (i = t, null != r && (a = i(r)), o) : i }, o.context = function(t) { return arguments.length ? (null == t ? r = a = null : a = i(r = t), o) : r }, o }, Iw = function() { var t = Dw, e = null, n = sw(0), r = Cw, i = sw(!0), a = null, o = Tw, s = null; function u(u) { var c, f, l, h, d, p = u.length, g = !1, y = new Array(p), b = new Array(p); for (null == a && (s = o(d = Xi())), c = 0; c <= p; ++c) { if (!(c < p && i(h = u[c], c, u)) === g) if (g = !g) f = c, s.areaStart(), s.lineStart(); else { for (s.lineEnd(), s.lineStart(), l = c - 1; l >= f; --l) s.point(y[l], b[l]); s.lineEnd(), s.areaEnd() } g && (y[c] = +t(h, c, u), b[c] = +n(h, c, u), s.point(e ? +e(h, c, u) : y[c], r ? +r(h, c, u) : b[c])) } if (d) return s = null, d + "" || null } function c() { return Nw().defined(i).curve(o).context(a) } return u.x = function(n) { return arguments.length ? (t = "function" == typeof n ? n : sw(+n), e = null, u) : t }, u.x0 = function(e) { return arguments.length ? (t = "function" == typeof e ? e : sw(+e), u) : t }, u.x1 = function(t) { return arguments.length ? (e = null == t ? null : "function" == typeof t ? t : sw(+t), u) : e }, u.y = function(t) { return arguments.length ? (n = "function" == typeof t ? t : sw(+t), r = null, u) : n }, u.y0 = function(t) { return arguments.length ? (n = "function" == typeof t ? t : sw(+t), u) : n }, u.y1 = function(t) { return arguments.length ? (r = null == t ? null : "function" == typeof t ? t : sw(+t), u) : r }, u.lineX0 = u.lineY0 = function() { return c().x(t).y(n) }, u.lineY1 = function() { return c().x(t).y(r) }, u.lineX1 = function() { return c().x(e).y(n) }, u.defined = function(t) { return arguments.length ? (i = "function" == typeof t ? t : sw(!!t), u) : i }, u.curve = function(t) { return arguments.length ? (o = t, null != a && (s = o(a)), u) : o }, u.context = function(t) { return arguments.length ? (null == t ? a = s = null : s = o(a = t), u) : a }, u }, Lw = function(t, e) { return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN }, Bw = function(t) { return t }, Ow = function() { var t = Bw, e = Lw, n = null, r = sw(0), i = sw(vw), a = sw(0); function o(o) { var s, u, c, f, l, h = o.length, d = 0, p = new Array(h), g = new Array(h), y = +r.apply(this, arguments), b = Math.min(vw, Math.max(-vw, i.apply(this, arguments) - y)), v = Math.min(Math.abs(b) / h, a.apply(this, arguments)), m = v * (b < 0 ? -1 : 1); for (s = 0; s < h; ++s)(l = g[p[s] = s] = +t(o[s], s, o)) > 0 && (d += l); for (null != e ? p.sort((function(t, n) { return e(g[t], g[n]) })) : null != n && p.sort((function(t, e) { return n(o[t], o[e]) })), s = 0, c = d ? (b - h * m) / d : 0; s < h; ++s, y = f) u = p[s], f = y + ((l = g[u]) > 0 ? l * c : 0) + m, g[u] = { data: o[u], index: s, value: l, startAngle: y, endAngle: f, padAngle: v }; return g } return o.value = function(e) { return arguments.length ? (t = "function" == typeof e ? e : sw(+e), o) : t }, o.sortValues = function(t) { return arguments.length ? (e = t, n = null, o) : e }, o.sort = function(t) { return arguments.length ? (n = t, e = null, o) : n }, o.startAngle = function(t) { return arguments.length ? (r = "function" == typeof t ? t : sw(+t), o) : r }, o.endAngle = function(t) { return arguments.length ? (i = "function" == typeof t ? t : sw(+t), o) : i }, o.padAngle = function(t) { return arguments.length ? (a = "function" == typeof t ? t : sw(+t), o) : a }, o }, Rw = Fw(Tw); function Pw(t) { this._curve = t } function Fw(t) { function e(e) { return new Pw(t(e)) } return e._curve = t, e } function qw(t) { var e = t.curve; return t.angle = t.x, delete t.x, t.radius = t.y, delete t.y, t.curve = function(t) { return arguments.length ? e(Fw(t)) : e()._curve }, t } Pw.prototype = { areaStart: function() { this._curve.areaStart() }, areaEnd: function() { this._curve.areaEnd() }, lineStart: function() { this._curve.lineStart() }, lineEnd: function() { this._curve.lineEnd() }, point: function(t, e) { this._curve.point(e * Math.sin(t), e * -Math.cos(t)) } }; var jw = function() { return qw(Nw().curve(Rw)) }, Uw = function() { var t = Iw().curve(Rw), e = t.curve, n = t.lineX0, r = t.lineX1, i = t.lineY0, a = t.lineY1; return t.angle = t.x, delete t.x, t.startAngle = t.x0, delete t.x0, t.endAngle = t.x1, delete t.x1, t.radius = t.y, delete t.y, t.innerRadius = t.y0, delete t.y0, t.outerRadius = t.y1, delete t.y1, t.lineStartAngle = function() { return qw(n()) }, delete t.lineX0, t.lineEndAngle = function() { return qw(r()) }, delete t.lineX1, t.lineInnerRadius = function() { return qw(i()) }, delete t.lineY0, t.lineOuterRadius = function() { return qw(a()) }, delete t.lineY1, t.curve = function(t) { return arguments.length ? e(Fw(t)) : e()._curve }, t }, zw = function(t, e) { return [(e = +e) * Math.cos(t -= Math.PI / 2), e * Math.sin(t)] }, Yw = Array.prototype.slice; function Vw(t) { return t.source } function Hw(t) { return t.target } function Gw(t) { var e = Vw, n = Hw, r = Dw, i = Cw, a = null; function o() { var o, s = Yw.call(arguments), u = e.apply(this, s), c = n.apply(this, s); if (a || (a = o = Xi()), t(a, +r.apply(this, (s[0] = u, s)), +i.apply(this, s), +r.apply(this, (s[0] = c, s)), +i.apply(this, s)), o) return a = null, o + "" || null } return o.source = function(t) { return arguments.length ? (e = t, o) : e }, o.target = function(t) { return arguments.length ? (n = t, o) : n }, o.x = function(t) { return arguments.length ? (r = "function" == typeof t ? t : sw(+t), o) : r }, o.y = function(t) { return arguments.length ? (i = "function" == typeof t ? t : sw(+t), o) : i }, o.context = function(t) { return arguments.length ? (a = null == t ? null : t, o) : a }, o } function $w(t, e, n, r, i) { t.moveTo(e, n), t.bezierCurveTo(e = (e + r) / 2, n, e, i, r, i) } function Ww(t, e, n, r, i) { t.moveTo(e, n), t.bezierCurveTo(e, n = (n + i) / 2, r, n, r, i) } function Kw(t, e, n, r, i) { var a = zw(e, n), o = zw(e, n = (n + i) / 2), s = zw(r, n), u = zw(r, i); t.moveTo(a[0], a[1]), t.bezierCurveTo(o[0], o[1], s[0], s[1], u[0], u[1]) } function Xw() { return Gw($w) } function Zw() { return Gw(Ww) } function Jw() { var t = Gw(Kw); return t.angle = t.x, delete t.x, t.radius = t.y, delete t.y, t } var Qw = { draw: function(t, e) { var n = Math.sqrt(e / yw); t.moveTo(n, 0), t.arc(0, 0, n, 0, vw) } }, tx = { draw: function(t, e) { var n = Math.sqrt(e / 5) / 2; t.moveTo(-3 * n, -n), t.lineTo(-n, -n), t.lineTo(-n, -3 * n), t.lineTo(n, -3 * n), t.lineTo(n, -n), t.lineTo(3 * n, -n), t.lineTo(3 * n, n), t.lineTo(n, n), t.lineTo(n, 3 * n), t.lineTo(-n, 3 * n), t.lineTo(-n, n), t.lineTo(-3 * n, n), t.closePath() } }, ex = Math.sqrt(1 / 3), nx = 2 * ex, rx = { draw: function(t, e) { var n = Math.sqrt(e / nx), r = n * ex; t.moveTo(0, -n), t.lineTo(r, 0), t.lineTo(0, n), t.lineTo(-r, 0), t.closePath() } }, ix = Math.sin(yw / 10) / Math.sin(7 * yw / 10), ax = Math.sin(vw / 10) * ix, ox = -Math.cos(vw / 10) * ix, sx = { draw: function(t, e) { var n = Math.sqrt(.8908130915292852 * e), r = ax * n, i = ox * n; t.moveTo(0, -n), t.lineTo(r, i); for (var a = 1; a < 5; ++a) { var o = vw * a / 5, s = Math.cos(o), u = Math.sin(o); t.lineTo(u * n, -s * n), t.lineTo(s * r - u * i, u * r + s * i) } t.closePath() } }, ux = { draw: function(t, e) { var n = Math.sqrt(e), r = -n / 2; t.rect(r, r, n, n) } }, cx = Math.sqrt(3), fx = { draw: function(t, e) { var n = -Math.sqrt(e / (3 * cx)); t.moveTo(0, 2 * n), t.lineTo(-cx * n, -n), t.lineTo(cx * n, -n), t.closePath() } }, lx = Math.sqrt(3) / 2, hx = 1 / Math.sqrt(12), dx = 3 * (hx / 2 + 1), px = { draw: function(t, e) { var n = Math.sqrt(e / dx), r = n / 2, i = n * hx, a = r, o = n * hx + n, s = -a, u = o; t.moveTo(r, i), t.lineTo(a, o), t.lineTo(s, u), t.lineTo(-.5 * r - lx * i, lx * r + -.5 * i), t.lineTo(-.5 * a - lx * o, lx * a + -.5 * o), t.lineTo(-.5 * s - lx * u, lx * s + -.5 * u), t.lineTo(-.5 * r + lx * i, -.5 * i - lx * r), t.lineTo(-.5 * a + lx * o, -.5 * o - lx * a), t.lineTo(-.5 * s + lx * u, -.5 * u - lx * s), t.closePath() } }, gx = [Qw, tx, rx, ux, sx, fx, px], yx = function() { var t = sw(Qw), e = sw(64), n = null; function r() { var r; if (n || (n = r = Xi()), t.apply(this, arguments).draw(n, +e.apply(this, arguments)), r) return n = null, r + "" || null } return r.type = function(e) { return arguments.length ? (t = "function" == typeof e ? e : sw(e), r) : t }, r.size = function(t) { return arguments.length ? (e = "function" == typeof t ? t : sw(+t), r) : e }, r.context = function(t) { return arguments.length ? (n = null == t ? null : t, r) : n }, r }, bx = function() {}; function vx(t, e, n) { t._context.bezierCurveTo((2 * t._x0 + t._x1) / 3, (2 * t._y0 + t._y1) / 3, (t._x0 + 2 * t._x1) / 3, (t._y0 + 2 * t._y1) / 3, (t._x0 + 4 * t._x1 + e) / 6, (t._y0 + 4 * t._y1 + n) / 6) } function mx(t) { this._context = t } mx.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0 }, lineEnd: function() { switch (this._point) { case 3: vx(this, this._x1, this._y1); case 2: this._context.lineTo(this._x1, this._y1) }(this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); break; case 1: this._point = 2; break; case 2: this._point = 3, this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); default: vx(this, t, e) } this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e } }; var _x = function(t) { return new mx(t) }; function wx(t) { this._context = t } wx.prototype = { areaStart: bx, areaEnd: bx, lineStart: function() { this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0 }, lineEnd: function() { switch (this._point) { case 1: this._context.moveTo(this._x2, this._y2), this._context.closePath(); break; case 2: this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3), this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3), this._context.closePath(); break; case 3: this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4) } }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1, this._x2 = t, this._y2 = e; break; case 1: this._point = 2, this._x3 = t, this._y3 = e; break; case 2: this._point = 3, this._x4 = t, this._y4 = e, this._context.moveTo((this._x0 + 4 * this._x1 + t) / 6, (this._y0 + 4 * this._y1 + e) / 6); break; default: vx(this, t, e) } this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e } }; var xx = function(t) { return new wx(t) }; function kx(t) { this._context = t } kx.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0 }, lineEnd: function() { (this._line || 0 !== this._line && 3 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1; break; case 1: this._point = 2; break; case 2: this._point = 3; var n = (this._x0 + 4 * this._x1 + t) / 6, r = (this._y0 + 4 * this._y1 + e) / 6; this._line ? this._context.lineTo(n, r) : this._context.moveTo(n, r); break; case 3: this._point = 4; default: vx(this, t, e) } this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e } }; var Ex = function(t) { return new kx(t) }; function Ax(t, e) { this._basis = new mx(t), this._beta = e } Ax.prototype = { lineStart: function() { this._x = [], this._y = [], this._basis.lineStart() }, lineEnd: function() { var t = this._x, e = this._y, n = t.length - 1; if (n > 0) for (var r, i = t[0], a = e[0], o = t[n] - i, s = e[n] - a, u = -1; ++u <= n;) r = u / n, this._basis.point(this._beta * t[u] + (1 - this._beta) * (i + r * o), this._beta * e[u] + (1 - this._beta) * (a + r * s)); this._x = this._y = null, this._basis.lineEnd() }, point: function(t, e) { this._x.push(+t), this._y.push(+e) } }; var Sx = function t(e) { function n(t) { return 1 === e ? new mx(t) : new Ax(t, e) } return n.beta = function(e) { return t(+e) }, n }(.85); function Mx(t, e, n) { t._context.bezierCurveTo(t._x1 + t._k * (t._x2 - t._x0), t._y1 + t._k * (t._y2 - t._y0), t._x2 + t._k * (t._x1 - e), t._y2 + t._k * (t._y1 - n), t._x2, t._y2) } function Tx(t, e) { this._context = t, this._k = (1 - e) / 6 } Tx.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0 }, lineEnd: function() { switch (this._point) { case 2: this._context.lineTo(this._x2, this._y2); break; case 3: Mx(this, this._x1, this._y1) }(this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); break; case 1: this._point = 2, this._x1 = t, this._y1 = e; break; case 2: this._point = 3; default: Mx(this, t, e) } this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e } }; var Dx = function t(e) { function n(t) { return new Tx(t, e) } return n.tension = function(e) { return t(+e) }, n }(0); function Cx(t, e) { this._context = t, this._k = (1 - e) / 6 } Cx.prototype = { areaStart: bx, areaEnd: bx, lineStart: function() { this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._point = 0 }, lineEnd: function() { switch (this._point) { case 1: this._context.moveTo(this._x3, this._y3), this._context.closePath(); break; case 2: this._context.lineTo(this._x3, this._y3), this._context.closePath(); break; case 3: this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5) } }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1, this._x3 = t, this._y3 = e; break; case 1: this._point = 2, this._context.moveTo(this._x4 = t, this._y4 = e); break; case 2: this._point = 3, this._x5 = t, this._y5 = e; break; default: Mx(this, t, e) } this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e } }; var Nx = function t(e) { function n(t) { return new Cx(t, e) } return n.tension = function(e) { return t(+e) }, n }(0); function Ix(t, e) { this._context = t, this._k = (1 - e) / 6 } Ix.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0 }, lineEnd: function() { (this._line || 0 !== this._line && 3 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1; break; case 1: this._point = 2; break; case 2: this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: this._point = 4; default: Mx(this, t, e) } this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e } }; var Lx = function t(e) { function n(t) { return new Ix(t, e) } return n.tension = function(e) { return t(+e) }, n }(0); function Bx(t, e, n) { var r = t._x1, i = t._y1, a = t._x2, o = t._y2; if (t._l01_a > gw) { var s = 2 * t._l01_2a + 3 * t._l01_a * t._l12_a + t._l12_2a, u = 3 * t._l01_a * (t._l01_a + t._l12_a); r = (r * s - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / u, i = (i * s - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / u } if (t._l23_a > gw) { var c = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a, f = 3 * t._l23_a * (t._l23_a + t._l12_a); a = (a * c + t._x1 * t._l23_2a - e * t._l12_2a) / f, o = (o * c + t._y1 * t._l23_2a - n * t._l12_2a) / f } t._context.bezierCurveTo(r, i, a, o, t._x2, t._y2) } function Ox(t, e) { this._context = t, this._alpha = e } Ox.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0 }, lineEnd: function() { switch (this._point) { case 2: this._context.lineTo(this._x2, this._y2); break; case 3: this.point(this._x2, this._y2) }(this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { if (t = +t, e = +e, this._point) { var n = this._x2 - t, r = this._y2 - e; this._l23_a = Math.sqrt(this._l23_2a = Math.pow(n * n + r * r, this._alpha)) } switch (this._point) { case 0: this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); break; case 1: this._point = 2; break; case 2: this._point = 3; default: Bx(this, t, e) } this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e } }; var Rx = function t(e) { function n(t) { return e ? new Ox(t, e) : new Tx(t, 0) } return n.alpha = function(e) { return t(+e) }, n }(.5); function Px(t, e) { this._context = t, this._alpha = e } Px.prototype = { areaStart: bx, areaEnd: bx, lineStart: function() { this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0 }, lineEnd: function() { switch (this._point) { case 1: this._context.moveTo(this._x3, this._y3), this._context.closePath(); break; case 2: this._context.lineTo(this._x3, this._y3), this._context.closePath(); break; case 3: this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5) } }, point: function(t, e) { if (t = +t, e = +e, this._point) { var n = this._x2 - t, r = this._y2 - e; this._l23_a = Math.sqrt(this._l23_2a = Math.pow(n * n + r * r, this._alpha)) } switch (this._point) { case 0: this._point = 1, this._x3 = t, this._y3 = e; break; case 1: this._point = 2, this._context.moveTo(this._x4 = t, this._y4 = e); break; case 2: this._point = 3, this._x5 = t, this._y5 = e; break; default: Bx(this, t, e) } this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e } }; var Fx = function t(e) { function n(t) { return e ? new Px(t, e) : new Cx(t, 0) } return n.alpha = function(e) { return t(+e) }, n }(.5); function qx(t, e) { this._context = t, this._alpha = e } qx.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0 }, lineEnd: function() { (this._line || 0 !== this._line && 3 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { if (t = +t, e = +e, this._point) { var n = this._x2 - t, r = this._y2 - e; this._l23_a = Math.sqrt(this._l23_2a = Math.pow(n * n + r * r, this._alpha)) } switch (this._point) { case 0: this._point = 1; break; case 1: this._point = 2; break; case 2: this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: this._point = 4; default: Bx(this, t, e) } this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = t, this._y0 = this._y1, this._y1 = this._y2, this._y2 = e } }; var jx = function t(e) { function n(t) { return e ? new qx(t, e) : new Ix(t, 0) } return n.alpha = function(e) { return t(+e) }, n }(.5); function Ux(t) { this._context = t } Ux.prototype = { areaStart: bx, areaEnd: bx, lineStart: function() { this._point = 0 }, lineEnd: function() { this._point && this._context.closePath() }, point: function(t, e) { t = +t, e = +e, this._point ? this._context.lineTo(t, e) : (this._point = 1, this._context.moveTo(t, e)) } }; var zx = function(t) { return new Ux(t) }; function Yx(t) { return t < 0 ? -1 : 1 } function Vx(t, e, n) { var r = t._x1 - t._x0, i = e - t._x1, a = (t._y1 - t._y0) / (r || i < 0 && -0), o = (n - t._y1) / (i || r < 0 && -0), s = (a * i + o * r) / (r + i); return (Yx(a) + Yx(o)) * Math.min(Math.abs(a), Math.abs(o), .5 * Math.abs(s)) || 0 } function Hx(t, e) { var n = t._x1 - t._x0; return n ? (3 * (t._y1 - t._y0) / n - e) / 2 : e } function Gx(t, e, n) { var r = t._x0, i = t._y0, a = t._x1, o = t._y1, s = (a - r) / 3; t._context.bezierCurveTo(r + s, i + s * e, a - s, o - s * n, a, o) } function $x(t) { this._context = t } function Wx(t) { this._context = new Kx(t) } function Kx(t) { this._context = t } function Xx(t) { return new $x(t) } function Zx(t) { return new Wx(t) } function Jx(t) { this._context = t } function Qx(t) { var e, n, r = t.length - 1, i = new Array(r), a = new Array(r), o = new Array(r); for (i[0] = 0, a[0] = 2, o[0] = t[0] + 2 * t[1], e = 1; e < r - 1; ++e) i[e] = 1, a[e] = 4, o[e] = 4 * t[e] + 2 * t[e + 1]; for (i[r - 1] = 2, a[r - 1] = 7, o[r - 1] = 8 * t[r - 1] + t[r], e = 1; e < r; ++e) n = i[e] / a[e - 1], a[e] -= n, o[e] -= n * o[e - 1]; for (i[r - 1] = o[r - 1] / a[r - 1], e = r - 2; e >= 0; --e) i[e] = (o[e] - i[e + 1]) / a[e]; for (a[r - 1] = (t[r] + i[r - 1]) / 2, e = 0; e < r - 1; ++e) a[e] = 2 * t[e + 1] - i[e + 1]; return [i, a] } $x.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0 }, lineEnd: function() { switch (this._point) { case 2: this._context.lineTo(this._x1, this._y1); break; case 3: Gx(this, this._t0, Hx(this, this._t0)) }(this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line = 1 - this._line }, point: function(t, e) { var n = NaN; if (e = +e, (t = +t) !== this._x1 || e !== this._y1) { switch (this._point) { case 0: this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); break; case 1: this._point = 2; break; case 2: this._point = 3, Gx(this, Hx(this, n = Vx(this, t, e)), n); break; default: Gx(this, this._t0, n = Vx(this, t, e)) } this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e, this._t0 = n } } }, (Wx.prototype = Object.create($x.prototype)).point = function(t, e) { $x.prototype.point.call(this, e, t) }, Kx.prototype = { moveTo: function(t, e) { this._context.moveTo(e, t) }, closePath: function() { this._context.closePath() }, lineTo: function(t, e) { this._context.lineTo(e, t) }, bezierCurveTo: function(t, e, n, r, i, a) { this._context.bezierCurveTo(e, t, r, n, a, i) } }, Jx.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x = [], this._y = [] }, lineEnd: function() { var t = this._x, e = this._y, n = t.length; if (n) if (this._line ? this._context.lineTo(t[0], e[0]) : this._context.moveTo(t[0], e[0]), 2 === n) this._context.lineTo(t[1], e[1]); else for (var r = Qx(t), i = Qx(e), a = 0, o = 1; o < n; ++a, ++o) this._context.bezierCurveTo(r[0][a], i[0][a], r[1][a], i[1][a], t[o], e[o]); (this._line || 0 !== this._line && 1 === n) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null }, point: function(t, e) { this._x.push(+t), this._y.push(+e) } }; var tk = function(t) { return new Jx(t) }; function ek(t, e) { this._context = t, this._t = e } ek.prototype = { areaStart: function() { this._line = 0 }, areaEnd: function() { this._line = NaN }, lineStart: function() { this._x = this._y = NaN, this._point = 0 }, lineEnd: function() { 0 < this._t && this._t < 1 && 2 === this._point && this._context.lineTo(this._x, this._y), (this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line) }, point: function(t, e) { switch (t = +t, e = +e, this._point) { case 0: this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); break; case 1: this._point = 2; default: if (this._t <= 0) this._context.lineTo(this._x, e), this._context.lineTo(t, e); else { var n = this._x * (1 - this._t) + t * this._t; this._context.lineTo(n, this._y), this._context.lineTo(n, e) } } this._x = t, this._y = e } }; var nk = function(t) { return new ek(t, .5) }; function rk(t) { return new ek(t, 0) } function ik(t) { return new ek(t, 1) } var ak = function(t, e) { if ((i = t.length) > 1) for (var n, r, i, a = 1, o = t[e[0]], s = o.length; a < i; ++a) for (r = o, o = t[e[a]], n = 0; n < s; ++n) o[n][1] += o[n][0] = isNaN(r[n][1]) ? r[n][0] : r[n][1] }, ok = function(t) { for (var e = t.length, n = new Array(e); --e >= 0;) n[e] = e; return n }; function sk(t, e) { return t[e] } var uk = function() { var t = sw([]), e = ok, n = ak, r = sk; function i(i) { var a, o, s = t.apply(this, arguments), u = i.length, c = s.length, f = new Array(c); for (a = 0; a < c; ++a) { for (var l, h = s[a], d = f[a] = new Array(u), p = 0; p < u; ++p) d[p] = l = [0, +r(i[p], h, p, i)], l.data = i[p]; d.key = h } for (a = 0, o = e(f); a < c; ++a) f[o[a]].index = a; return n(f, o), f } return i.keys = function(e) { return arguments.length ? (t = "function" == typeof e ? e : sw(Yw.call(e)), i) : t }, i.value = function(t) { return arguments.length ? (r = "function" == typeof t ? t : sw(+t), i) : r }, i.order = function(t) { return arguments.length ? (e = null == t ? ok : "function" == typeof t ? t : sw(Yw.call(t)), i) : e }, i.offset = function(t) { return arguments.length ? (n = null == t ? ak : t, i) : n }, i }, ck = function(t, e) { if ((r = t.length) > 0) { for (var n, r, i, a = 0, o = t[0].length; a < o; ++a) { for (i = n = 0; n < r; ++n) i += t[n][a][1] || 0; if (i) for (n = 0; n < r; ++n) t[n][a][1] /= i } ak(t, e) } }, fk = function(t, e) { if ((s = t.length) > 0) for (var n, r, i, a, o, s, u = 0, c = t[e[0]].length; u < c; ++u) for (a = o = 0, n = 0; n < s; ++n)(i = (r = t[e[n]][u])[1] - r[0]) > 0 ? (r[0] = a, r[1] = a += i) : i < 0 ? (r[1] = o, r[0] = o += i) : (r[0] = 0, r[1] = i) }, lk = function(t, e) { if ((n = t.length) > 0) { for (var n, r = 0, i = t[e[0]], a = i.length; r < a; ++r) { for (var o = 0, s = 0; o < n; ++o) s += t[o][r][1] || 0; i[r][1] += i[r][0] = -s / 2 } ak(t, e) } }, hk = function(t, e) { if ((i = t.length) > 0 && (r = (n = t[e[0]]).length) > 0) { for (var n, r, i, a = 0, o = 1; o < r; ++o) { for (var s = 0, u = 0, c = 0; s < i; ++s) { for (var f = t[e[s]], l = f[o][1] || 0, h = (l - (f[o - 1][1] || 0)) / 2, d = 0; d < s; ++d) { var p = t[e[d]]; h += (p[o][1] || 0) - (p[o - 1][1] || 0) } u += l, c += h * l } n[o - 1][1] += n[o - 1][0] = a, u && (a -= c / u) } n[o - 1][1] += n[o - 1][0] = a, ak(t, e) } }, dk = function(t) { var e = t.map(pk); return ok(t).sort((function(t, n) { return e[t] - e[n] })) }; function pk(t) { for (var e, n = -1, r = 0, i = t.length, a = -1 / 0; ++n < i;)(e = +t[n][1]) > a && (a = e, r = n); return r } var gk = function(t) { var e = t.map(yk); return ok(t).sort((function(t, n) { return e[t] - e[n] })) }; function yk(t) { for (var e, n = 0, r = -1, i = t.length; ++r < i;)(e = +t[r][1]) && (n += e); return n } var bk = function(t) { return gk(t).reverse() }, vk = function(t) { var e, n, r = t.length, i = t.map(yk), a = dk(t), o = 0, s = 0, u = [], c = []; for (e = 0; e < r; ++e) n = a[e], o < s ? (o += i[n], u.push(n)) : (s += i[n], c.push(n)); return c.reverse().concat(u) }, mk = function(t) { return ok(t).reverse() }; var _k = Date.prototype.toISOString ? function(t) { return t.toISOString() } : Ib("%Y-%m-%dT%H:%M:%S.%LZ"); var wk = +new Date("2000-01-01T00:00:00.000Z") ? function(t) { var e = new Date(t); return isNaN(e) ? null : e } : Lb("%Y-%m-%dT%H:%M:%S.%LZ"), xk = function(t, e, n) { var r = new Xn, i = e; return null == e ? (r.restart(t, e, n), r) : (e = +e, n = null == n ? Wn() : +n, r.restart((function a(o) { o += i, r.restart(a, i += e, n), t(o) }), e, n), r) }, kk = function(t) { return function() { return t } }; function Ek(t) { return t[0] } function Ak(t) { return t[1] } function Sk() { this._ = null } function Mk(t) { t.U = t.C = t.L = t.R = t.P = t.N = null } function Tk(t, e) { var n = e, r = e.R, i = n.U; i ? i.L === n ? i.L = r : i.R = r : t._ = r, r.U = i, n.U = r, n.R = r.L, n.R && (n.R.U = n), r.L = n } function Dk(t, e) { var n = e, r = e.L, i = n.U; i ? i.L === n ? i.L = r : i.R = r : t._ = r, r.U = i, n.U = r, n.L = r.R, n.L && (n.L.U = n), r.R = n } function Ck(t) { for (; t.L;) t = t.L; return t } Sk.prototype = { constructor: Sk, insert: function(t, e) { var n, r, i; if (t) { if (e.P = t, e.N = t.N, t.N && (t.N.P = e), t.N = e, t.R) { for (t = t.R; t.L;) t = t.L; t.L = e } else t.R = e; n = t } else this._ ? (t = Ck(this._), e.P = null, e.N = t, t.P = t.L = e, n = t) : (e.P = e.N = null, this._ = e, n = null); for (e.L = e.R = null, e.U = n, e.C = !0, t = e; n && n.C;) n === (r = n.U).L ? (i = r.R) && i.C ? (n.C = i.C = !1, r.C = !0, t = r) : (t === n.R && (Tk(this, n), n = (t = n).U), n.C = !1, r.C = !0, Dk(this, r)) : (i = r.L) && i.C ? (n.C = i.C = !1, r.C = !0, t = r) : (t === n.L && (Dk(this, n), n = (t = n).U), n.C = !1, r.C = !0, Tk(this, r)), n = t.U; this._.C = !1 }, remove: function(t) { t.N && (t.N.P = t.P), t.P && (t.P.N = t.N), t.N = t.P = null; var e, n, r, i = t.U, a = t.L, o = t.R; if (n = a ? o ? Ck(o) : a : o, i ? i.L === t ? i.L = n : i.R = n : this._ = n, a && o ? (r = n.C, n.C = t.C, n.L = a, a.U = n, n !== o ? (i = n.U, n.U = t.U, t = n.R, i.L = t, n.R = o, o.U = n) : (n.U = i, i = n, t = n.R)) : (r = t.C, t = n), t && (t.U = i), !r) if (t && t.C) t.C = !1; else { do { if (t === this._) break; if (t === i.L) { if ((e = i.R).C && (e.C = !1, i.C = !0, Tk(this, i), e = i.R), e.L && e.L.C || e.R && e.R.C) { e.R && e.R.C || (e.L.C = !1, e.C = !0, Dk(this, e), e = i.R), e.C = i.C, i.C = e.R.C = !1, Tk(this, i), t = this._; break } } else if ((e = i.L).C && (e.C = !1, i.C = !0, Dk(this, i), e = i.L), e.L && e.L.C || e.R && e.R.C) { e.L && e.L.C || (e.R.C = !1, e.C = !0, Tk(this, e), e = i.L), e.C = i.C, i.C = e.L.C = !1, Dk(this, i), t = this._; break } e.C = !0, t = i, i = i.U } while (!t.C); t && (t.C = !1) } } }; var Nk = Sk; function Ik(t, e, n, r) { var i = [null, null], a = nE.push(i) - 1; return i.left = t, i.right = e, n && Bk(i, t, e, n), r && Bk(i, e, t, r), tE[t.index].halfedges.push(a), tE[e.index].halfedges.push(a), i } function Lk(t, e, n) { var r = [e, n]; return r.left = t, r } function Bk(t, e, n, r) { t[0] || t[1] ? t.left === n ? t[1] = r : t[0] = r : (t[0] = r, t.left = e, t.right = n) } function Ok(t, e, n, r, i) { var a, o = t[0], s = t[1], u = o[0], c = o[1], f = 0, l = 1, h = s[0] - u, d = s[1] - c; if (a = e - u, h || !(a > 0)) { if (a /= h, h < 0) { if (a < f) return; a < l && (l = a) } else if (h > 0) { if (a > l) return; a > f && (f = a) } if (a = r - u, h || !(a < 0)) { if (a /= h, h < 0) { if (a > l) return; a > f && (f = a) } else if (h > 0) { if (a < f) return; a < l && (l = a) } if (a = n - c, d || !(a > 0)) { if (a /= d, d < 0) { if (a < f) return; a < l && (l = a) } else if (d > 0) { if (a > l) return; a > f && (f = a) } if (a = i - c, d || !(a < 0)) { if (a /= d, d < 0) { if (a > l) return; a > f && (f = a) } else if (d > 0) { if (a < f) return; a < l && (l = a) } return !(f > 0 || l < 1) || (f > 0 && (t[0] = [u + f * h, c + f * d]), l < 1 && (t[1] = [u + l * h, c + l * d]), !0) } } } } } function Rk(t, e, n, r, i) { var a = t[1]; if (a) return !0; var o, s, u = t[0], c = t.left, f = t.right, l = c[0], h = c[1], d = f[0], p = f[1], g = (l + d) / 2, y = (h + p) / 2; if (p === h) { if (g < e || g >= r) return; if (l > d) { if (u) { if (u[1] >= i) return } else u = [g, n]; a = [g, i] } else { if (u) { if (u[1] < n) return } else u = [g, i]; a = [g, n] } } else if (s = y - (o = (l - d) / (p - h)) * g, o < -1 || o > 1) if (l > d) { if (u) { if (u[1] >= i) return } else u = [(n - s) / o, n]; a = [(i - s) / o, i] } else { if (u) { if (u[1] < n) return } else u = [(i - s) / o, i]; a = [(n - s) / o, n] } else if (h < p) { if (u) { if (u[0] >= r) return } else u = [e, o * e + s]; a = [r, o * r + s] } else { if (u) { if (u[0] < e) return } else u = [r, o * r + s]; a = [e, o * e + s] } return t[0] = u, t[1] = a, !0 } function Pk(t, e) { var n = t.site, r = e.left, i = e.right; return n === i && (i = r, r = n), i ? Math.atan2(i[1] - r[1], i[0] - r[0]) : (n === r ? (r = e[1], i = e[0]) : (r = e[0], i = e[1]), Math.atan2(r[0] - i[0], i[1] - r[1])) } function Fk(t, e) { return e[+(e.left !== t.site)] } function qk(t, e) { return e[+(e.left === t.site)] } var jk, Uk = []; function zk() { Mk(this), this.x = this.y = this.arc = this.site = this.cy = null } function Yk(t) { var e = t.P, n = t.N; if (e && n) { var r = e.site, i = t.site, a = n.site; if (r !== a) { var o = i[0], s = i[1], u = r[0] - o, c = r[1] - s, f = a[0] - o, l = a[1] - s, h = 2 * (u * l - c * f); if (!(h >= -iE)) { var d = u * u + c * c, p = f * f + l * l, g = (l * d - c * p) / h, y = (u * p - f * d) / h, b = Uk.pop() || new zk; b.arc = t, b.site = i, b.x = g + o, b.y = (b.cy = y + s) + Math.sqrt(g * g + y * y), t.circle = b; for (var v = null, m = eE._; m;) if (b.y < m.y || b.y === m.y && b.x <= m.x) { if (!m.L) { v = m.P; break } m = m.L } else { if (!m.R) { v = m; break } m = m.R } eE.insert(v, b), v || (jk = b) } } } } function Vk(t) { var e = t.circle; e && (e.P || (jk = e.N), eE.remove(e), Uk.push(e), Mk(e), t.circle = null) } var Hk = []; function Gk() { Mk(this), this.edge = this.site = this.circle = null } function $k(t) { var e = Hk.pop() || new Gk; return e.site = t, e } function Wk(t) { Vk(t), Qk.remove(t), Hk.push(t), Mk(t) } function Kk(t) { var e = t.circle, n = e.x, r = e.cy, i = [n, r], a = t.P, o = t.N, s = [t]; Wk(t); for (var u = a; u.circle && Math.abs(n - u.circle.x) < rE && Math.abs(r - u.circle.cy) < rE;) a = u.P, s.unshift(u), Wk(u), u = a; s.unshift(u), Vk(u); for (var c = o; c.circle && Math.abs(n - c.circle.x) < rE && Math.abs(r - c.circle.cy) < rE;) o = c.N, s.push(c), Wk(c), c = o; s.push(c), Vk(c); var f, l = s.length; for (f = 1; f < l; ++f) c = s[f], u = s[f - 1], Bk(c.edge, u.site, c.site, i); u = s[0], (c = s[l - 1]).edge = Ik(u.site, c.site, null, i), Yk(u), Yk(c) } function Xk(t) { for (var e, n, r, i, a = t[0], o = t[1], s = Qk._; s;) if ((r = Zk(s, o) - a) > rE) s = s.L; else { if (!((i = a - Jk(s, o)) > rE)) { r > -rE ? (e = s.P, n = s) : i > -rE ? (e = s, n = s.N) : e = n = s; break } if (!s.R) { e = s; break } s = s.R }! function(t) { tE[t.index] = { site: t, halfedges: [] } }(t); var u = $k(t); if (Qk.insert(e, u), e || n) { if (e === n) return Vk(e), n = $k(e.site), Qk.insert(u, n), u.edge = n.edge = Ik(e.site, u.site), Yk(e), void Yk(n); if (n) { Vk(e), Vk(n); var c = e.site, f = c[0], l = c[1], h = t[0] - f, d = t[1] - l, p = n.site, g = p[0] - f, y = p[1] - l, b = 2 * (h * y - d * g), v = h * h + d * d, m = g * g + y * y, _ = [(y * v - d * m) / b + f, (h * m - g * v) / b + l]; Bk(n.edge, c, p, _), u.edge = Ik(c, t, null, _), n.edge = Ik(t, p, null, _), Yk(e), Yk(n) } else u.edge = Ik(e.site, u.site) } } function Zk(t, e) { var n = t.site, r = n[0], i = n[1], a = i - e; if (!a) return r; var o = t.P; if (!o) return -1 / 0; var s = (n = o.site)[0], u = n[1], c = u - e; if (!c) return s; var f = s - r, l = 1 / a - 1 / c, h = f / c; return l ? (-h + Math.sqrt(h * h - 2 * l * (f * f / (-2 * c) - u + c / 2 + i - a / 2))) / l + r : (r + s) / 2 } function Jk(t, e) { var n = t.N; if (n) return Zk(n, e); var r = t.site; return r[1] === e ? r[0] : 1 / 0 } var Qk, tE, eE, nE, rE = 1e-6, iE = 1e-12; function aE(t, e) { return e[1] - t[1] || e[0] - t[0] } function oE(t, e) { var n, r, i, a = t.sort(aE).pop(); for (nE = [], tE = new Array(t.length), Qk = new Nk, eE = new Nk;;) if (i = jk, a && (!i || a[1] < i.y || a[1] === i.y && a[0] < i.x)) a[0] === n && a[1] === r || (Xk(a), n = a[0], r = a[1]), a = t.pop(); else { if (!i) break; Kk(i.arc) } if (function() { for (var t, e, n, r, i = 0, a = tE.length; i < a; ++i) if ((t = tE[i]) && (r = (e = t.halfedges).length)) { var o = new Array(r), s = new Array(r); for (n = 0; n < r; ++n) o[n] = n, s[n] = Pk(t, nE[e[n]]); for (o.sort((function(t, e) { return s[e] - s[t] })), n = 0; n < r; ++n) s[n] = e[o[n]]; for (n = 0; n < r; ++n) e[n] = s[n] } }(), e) { var o = +e[0][0], s = +e[0][1], u = +e[1][0], c = +e[1][1]; ! function(t, e, n, r) { for (var i, a = nE.length; a--;) Rk(i = nE[a], t, e, n, r) && Ok(i, t, e, n, r) && (Math.abs(i[0][0] - i[1][0]) > rE || Math.abs(i[0][1] - i[1][1]) > rE) || delete nE[a] }(o, s, u, c), function(t, e, n, r) { var i, a, o, s, u, c, f, l, h, d, p, g, y = tE.length, b = !0; for (i = 0; i < y; ++i) if (a = tE[i]) { for (o = a.site, s = (u = a.halfedges).length; s--;) nE[u[s]] || u.splice(s, 1); for (s = 0, c = u.length; s < c;) p = (d = qk(a, nE[u[s]]))[0], g = d[1], l = (f = Fk(a, nE[u[++s % c]]))[0], h = f[1], (Math.abs(p - l) > rE || Math.abs(g - h) > rE) && (u.splice(s, 0, nE.push(Lk(o, d, Math.abs(p - t) < rE && r - g > rE ? [t, Math.abs(l - t) < rE ? h : r] : Math.abs(g - r) < rE && n - p > rE ? [Math.abs(h - r) < rE ? l : n, r] : Math.abs(p - n) < rE && g - e > rE ? [n, Math.abs(l - n) < rE ? h : e] : Math.abs(g - e) < rE && p - t > rE ? [Math.abs(h - e) < rE ? l : t, e] : null)) - 1), ++c); c && (b = !1) } if (b) { var v, m, _, w = 1 / 0; for (i = 0, b = null; i < y; ++i)(a = tE[i]) && (_ = (v = (o = a.site)[0] - t) * v + (m = o[1] - e) * m) < w && (w = _, b = a); if (b) { var x = [t, e], k = [t, r], E = [n, r], A = [n, e]; b.halfedges.push(nE.push(Lk(o = b.site, x, k)) - 1, nE.push(Lk(o, k, E)) - 1, nE.push(Lk(o, E, A)) - 1, nE.push(Lk(o, A, x)) - 1) } } for (i = 0; i < y; ++i)(a = tE[i]) && (a.halfedges.length || delete tE[i]) }(o, s, u, c) } this.edges = nE, this.cells = tE, Qk = eE = nE = tE = null } oE.prototype = { constructor: oE, polygons: function() { var t = this.edges; return this.cells.map((function(e) { var n = e.halfedges.map((function(n) { return Fk(e, t[n]) })); return n.data = e.site.data, n })) }, triangles: function() { var t = [], e = this.edges; return this.cells.forEach((function(n, r) { if (a = (i = n.halfedges).length) for (var i, a, o, s, u, c, f = n.site, l = -1, h = e[i[a - 1]], d = h.left === f ? h.right : h.left; ++l < a;) o = d, d = (h = e[i[l]]).left === f ? h.right : h.left, o && d && r < o.index && r < d.index && (u = o, c = d, ((s = f)[0] - c[0]) * (u[1] - s[1]) - (s[0] - u[0]) * (c[1] - s[1]) < 0) && t.push([f.data, o.data, d.data]) })), t }, links: function() { return this.edges.filter((function(t) { return t.right })).map((function(t) { return { source: t.left.data, target: t.right.data } })) }, find: function(t, e, n) { for (var r, i, a = this, o = a._found || 0, s = a.cells.length; !(i = a.cells[o]);) if (++o >= s) return null; var u = t - i.site[0], c = e - i.site[1], f = u * u + c * c; do { i = a.cells[r = o], o = null, i.halfedges.forEach((function(n) { var r = a.edges[n], s = r.left; if (s !== i.site && s || (s = r.right)) { var u = t - s[0], c = e - s[1], l = u * u + c * c; l < f && (f = l, o = s.index) } })) } while (null !== o); return a._found = r, null == n || f <= n * n ? i.site : null } }; var sE = function() { var t = Ek, e = Ak, n = null; function r(r) { return new oE(r.map((function(n, i) { var a = [Math.round(t(n, i, r) / rE) * rE, Math.round(e(n, i, r) / rE) * rE]; return a.index = i, a.data = n, a })), n) } return r.polygons = function(t) { return r(t).polygons() }, r.links = function(t) { return r(t).links() }, r.triangles = function(t) { return r(t).triangles() }, r.x = function(e) { return arguments.length ? (t = "function" == typeof e ? e : kk(+e), r) : t }, r.y = function(t) { return arguments.length ? (e = "function" == typeof t ? t : kk(+t), r) : e }, r.extent = function(t) { return arguments.length ? (n = null == t ? null : [ [+t[0][0], +t[0][1]], [+t[1][0], +t[1][1]] ], r) : n && [ [n[0][0], n[0][1]], [n[1][0], n[1][1]] ] }, r.size = function(t) { return arguments.length ? (n = null == t ? null : [ [0, 0], [+t[0], +t[1]] ], r) : n && [n[1][0] - n[0][0], n[1][1] - n[0][1]] }, r }, uE = function(t) { return function() { return t } }; function cE(t, e, n) { this.target = t, this.type = e, this.transform = n } function fE(t, e, n) { this.k = t, this.x = e, this.y = n } fE.prototype = { constructor: fE, scale: function(t) { return 1 === t ? this : new fE(this.k * t, this.x, this.y) }, translate: function(t, e) { return 0 === t & 0 === e ? this : new fE(this.k, this.x + this.k * t, this.y + this.k * e) }, apply: function(t) { return [t[0] * this.k + this.x, t[1] * this.k + this.y] }, applyX: function(t) { return t * this.k + this.x }, applyY: function(t) { return t * this.k + this.y }, invert: function(t) { return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k] }, invertX: function(t) { return (t - this.x) / this.k }, invertY: function(t) { return (t - this.y) / this.k }, rescaleX: function(t) { return t.copy().domain(t.range().map(this.invertX, this).map(t.invert, t)) }, rescaleY: function(t) { return t.copy().domain(t.range().map(this.invertY, this).map(t.invert, t)) }, toString: function() { return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")" } }; var lE = new fE(1, 0, 0); function hE(t) { for (; !t.__zoom;) if (!(t = t.parentNode)) return lE; return t.__zoom } function dE() { pe.stopImmediatePropagation() } hE.prototype = fE.prototype; var pE = function() { pe.preventDefault(), pe.stopImmediatePropagation() }; function gE() { return !pe.ctrlKey && !pe.button } function yE() { var t = this; return t instanceof SVGElement ? (t = t.ownerSVGElement || t).hasAttribute("viewBox") ? [ [(t = t.viewBox.baseVal).x, t.y], [t.x + t.width, t.y + t.height] ] : [ [0, 0], [t.width.baseVal.value, t.height.baseVal.value] ] : [ [0, 0], [t.clientWidth, t.clientHeight] ] } function bE() { return this.__zoom || lE } function vE() { return -pe.deltaY * (1 === pe.deltaMode ? .05 : pe.deltaMode ? 1 : .002) } function mE() { return navigator.maxTouchPoints || "ontouchstart" in this } function _E(t, e, n) { var r = t.invertX(e[0][0]) - n[0][0], i = t.invertX(e[1][0]) - n[1][0], a = t.invertY(e[0][1]) - n[0][1], o = t.invertY(e[1][1]) - n[1][1]; return t.translate(i > r ? (r + i) / 2 : Math.min(0, r) || Math.max(0, i), o > a ? (a + o) / 2 : Math.min(0, a) || Math.max(0, o)) } var wE = function() { var t, e, n = gE, r = yE, i = _E, a = vE, o = mE, s = [0, 1 / 0], u = [ [-1 / 0, -1 / 0], [1 / 0, 1 / 0] ], c = 250, f = Zp, l = gt("start", "zoom", "end"), h = 500, d = 150, p = 0; function g(t) { t.property("__zoom", bE).on("wheel.zoom", x).on("mousedown.zoom", k).on("dblclick.zoom", E).filter(o).on("touchstart.zoom", A).on("touchmove.zoom", S).on("touchend.zoom touchcancel.zoom", M).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") } function y(t, e) { return (e = Math.max(s[0], Math.min(s[1], e))) === t.k ? t : new fE(e, t.x, t.y) } function b(t, e, n) { var r = e[0] - n[0] * t.k, i = e[1] - n[1] * t.k; return r === t.x && i === t.y ? t : new fE(t.k, r, i) } function v(t) { return [(+t[0][0] + +t[1][0]) / 2, (+t[0][1] + +t[1][1]) / 2] } function m(t, e, n) { t.on("start.zoom", (function() { _(this, arguments).start() })).on("interrupt.zoom end.zoom", (function() { _(this, arguments).end() })).tween("zoom", (function() { var t = this, i = arguments, a = _(t, i), o = r.apply(t, i), s = null == n ? v(o) : "function" == typeof n ? n.apply(t, i) : n, u = Math.max(o[1][0] - o[0][0], o[1][1] - o[0][1]), c = t.__zoom, l = "function" == typeof e ? e.apply(t, i) : e, h = f(c.invert(s).concat(u / c.k), l.invert(s).concat(u / l.k)); return function(t) { if (1 === t) t = l; else { var e = h(t), n = u / e[2]; t = new fE(n, s[0] - e[0] * n, s[1] - e[1] * n) } a.zoom(null, t) } })) } function _(t, e, n) { return !n && t.__zooming || new w(t, e) } function w(t, e) { this.that = t, this.args = e, this.active = 0, this.extent = r.apply(t, e), this.taps = 0 } function x() { if (n.apply(this, arguments)) { var t = _(this, arguments), e = this.__zoom, r = Math.max(s[0], Math.min(s[1], e.k * Math.pow(2, a.apply(this, arguments)))), o = Fn(this); if (t.wheel) t.mouse[0][0] === o[0] && t.mouse[0][1] === o[1] || (t.mouse[1] = e.invert(t.mouse[0] = o)), clearTimeout(t.wheel); else { if (e.k === r) return; t.mouse = [o, e.invert(o)], _r(this), t.start() } pE(), t.wheel = setTimeout((function() { t.wheel = null, t.end() }), d), t.zoom("mouse", i(b(y(e, r), t.mouse[0], t.mouse[1]), t.extent, u)) } } function k() { if (!e && n.apply(this, arguments)) { var t = _(this, arguments, !0), r = Te(pe.view).on("mousemove.zoom", (function() { if (pE(), !t.moved) { var e = pe.clientX - o, n = pe.clientY - s; t.moved = e * e + n * n > p } t.zoom("mouse", i(b(t.that.__zoom, t.mouse[0] = Fn(t.that), t.mouse[1]), t.extent, u)) }), !0).on("mouseup.zoom", (function() { r.on("mousemove.zoom mouseup.zoom", null), Ie(pe.view, t.moved), pE(), t.end() }), !0), a = Fn(this), o = pe.clientX, s = pe.clientY; Ne(pe.view), dE(), t.mouse = [a, this.__zoom.invert(a)], _r(this), t.start() } } function E() { if (n.apply(this, arguments)) { var t = this.__zoom, e = Fn(this), a = t.invert(e), o = t.k * (pe.shiftKey ? .5 : 2), s = i(b(y(t, o), e, a), r.apply(this, arguments), u); pE(), c > 0 ? Te(this).transition().duration(c).call(m, s, e) : Te(this).call(g.transform, s) } } function A() { if (n.apply(this, arguments)) { var e, r, i, a, o = pe.touches, s = o.length, u = _(this, arguments, pe.changedTouches.length === s); for (dE(), r = 0; r < s; ++r) i = o[r], a = [a = Pn(this, o, i.identifier), this.__zoom.invert(a), i.identifier], u.touch0 ? u.touch1 || u.touch0[2] === a[2] || (u.touch1 = a, u.taps = 0) : (u.touch0 = a, e = !0, u.taps = 1 + !!t); t && (t = clearTimeout(t)), e && (u.taps < 2 && (t = setTimeout((function() { t = null }), h)), _r(this), u.start()) } } function S() { if (this.__zooming) { var e, n, r, a, o = _(this, arguments), s = pe.changedTouches, c = s.length; for (pE(), t && (t = clearTimeout(t)), o.taps = 0, e = 0; e < c; ++e) n = s[e], r = Pn(this, s, n.identifier), o.touch0 && o.touch0[2] === n.identifier ? o.touch0[0] = r : o.touch1 && o.touch1[2] === n.identifier && (o.touch1[0] = r); if (n = o.that.__zoom, o.touch1) { var f = o.touch0[0], l = o.touch0[1], h = o.touch1[0], d = o.touch1[1], p = (p = h[0] - f[0]) * p + (p = h[1] - f[1]) * p, g = (g = d[0] - l[0]) * g + (g = d[1] - l[1]) * g; n = y(n, Math.sqrt(p / g)), r = [(f[0] + h[0]) / 2, (f[1] + h[1]) / 2], a = [(l[0] + d[0]) / 2, (l[1] + d[1]) / 2] } else { if (!o.touch0) return; r = o.touch0[0], a = o.touch0[1] } o.zoom("touch", i(b(n, r, a), o.extent, u)) } } function M() { if (this.__zooming) { var t, n, r = _(this, arguments), i = pe.changedTouches, a = i.length; for (dE(), e && clearTimeout(e), e = setTimeout((function() { e = null }), h), t = 0; t < a; ++t) n = i[t], r.touch0 && r.touch0[2] === n.identifier ? delete r.touch0 : r.touch1 && r.touch1[2] === n.identifier && delete r.touch1; if (r.touch1 && !r.touch0 && (r.touch0 = r.touch1, delete r.touch1), r.touch0) r.touch0[1] = this.__zoom.invert(r.touch0[0]); else if (r.end(), 2 === r.taps) { var o = Te(this).on("dblclick.zoom"); o && o.apply(this, arguments) } } } return g.transform = function(t, e, n) { var r = t.selection ? t.selection() : t; r.property("__zoom", bE), t !== r ? m(t, e, n) : r.interrupt().each((function() { _(this, arguments).start().zoom(null, "function" == typeof e ? e.apply(this, arguments) : e).end() })) }, g.scaleBy = function(t, e, n) { g.scaleTo(t, (function() { var t = this.__zoom.k, n = "function" == typeof e ? e.apply(this, arguments) : e; return t * n }), n) }, g.scaleTo = function(t, e, n) { g.transform(t, (function() { var t = r.apply(this, arguments), a = this.__zoom, o = null == n ? v(t) : "function" == typeof n ? n.apply(this, arguments) : n, s = a.invert(o), c = "function" == typeof e ? e.apply(this, arguments) : e; return i(b(y(a, c), o, s), t, u) }), n) }, g.translateBy = function(t, e, n) { g.transform(t, (function() { return i(this.__zoom.translate("function" == typeof e ? e.apply(this, arguments) : e, "function" == typeof n ? n.apply(this, arguments) : n), r.apply(this, arguments), u) })) }, g.translateTo = function(t, e, n, a) { g.transform(t, (function() { var t = r.apply(this, arguments), o = this.__zoom, s = null == a ? v(t) : "function" == typeof a ? a.apply(this, arguments) : a; return i(lE.translate(s[0], s[1]).scale(o.k).translate("function" == typeof e ? -e.apply(this, arguments) : -e, "function" == typeof n ? -n.apply(this, arguments) : -n), t, u) }), a) }, w.prototype = { start: function() { return 1 == ++this.active && (this.that.__zooming = this, this.emit("start")), this }, zoom: function(t, e) { return this.mouse && "mouse" !== t && (this.mouse[1] = e.invert(this.mouse[0])), this.touch0 && "touch" !== t && (this.touch0[1] = e.invert(this.touch0[0])), this.touch1 && "touch" !== t && (this.touch1[1] = e.invert(this.touch1[0])), this.that.__zoom = e, this.emit("zoom"), this }, end: function() { return 0 == --this.active && (delete this.that.__zooming, this.emit("end")), this }, emit: function(t) { _e(new cE(g, t, this.that.__zoom), l.apply, l, [t, this.that, this.args]) } }, g.wheelDelta = function(t) { return arguments.length ? (a = "function" == typeof t ? t : uE(+t), g) : a }, g.filter = function(t) { return arguments.length ? (n = "function" == typeof t ? t : uE(!!t), g) : n }, g.touchable = function(t) { return arguments.length ? (o = "function" == typeof t ? t : uE(!!t), g) : o }, g.extent = function(t) { return arguments.length ? (r = "function" == typeof t ? t : uE([ [+t[0][0], +t[0][1]], [+t[1][0], +t[1][1]] ]), g) : r }, g.scaleExtent = function(t) { return arguments.length ? (s[0] = +t[0], s[1] = +t[1], g) : [s[0], s[1]] }, g.translateExtent = function(t) { return arguments.length ? (u[0][0] = +t[0][0], u[1][0] = +t[1][0], u[0][1] = +t[0][1], u[1][1] = +t[1][1], g) : [ [u[0][0], u[0][1]], [u[1][0], u[1][1]] ] }, g.constrain = function(t) { return arguments.length ? (i = t, g) : i }, g.duration = function(t) { return arguments.length ? (c = +t, g) : c }, g.interpolate = function(t) { return arguments.length ? (f = t, g) : f }, g.on = function() { var t = l.on.apply(l, arguments); return t === l ? g : t }, g.clickDistance = function(t) { return arguments.length ? (p = (t = +t) * t, g) : Math.sqrt(p) }, g }; n.d(e, "version", (function() { return "5.14.2" })), n.d(e, "bisect", (function() { return u })), n.d(e, "bisectRight", (function() { return o })), n.d(e, "bisectLeft", (function() { return s })), n.d(e, "ascending", (function() { return r })), n.d(e, "bisector", (function() { return i })), n.d(e, "cross", (function() { return l })), n.d(e, "descending", (function() { return h })), n.d(e, "deviation", (function() { return g })), n.d(e, "extent", (function() { return y })), n.d(e, "histogram", (function() { return C })), n.d(e, "thresholdFreedmanDiaconis", (function() { return I })), n.d(e, "thresholdScott", (function() { return L })), n.d(e, "thresholdSturges", (function() { return D })), n.d(e, "max", (function() { return B })), n.d(e, "mean", (function() { return O })), n.d(e, "median", (function() { return R })), n.d(e, "merge", (function() { return P })), n.d(e, "min", (function() { return F })), n.d(e, "pairs", (function() { return c })), n.d(e, "permute", (function() { return q })), n.d(e, "quantile", (function() { return N })), n.d(e, "range", (function() { return x })), n.d(e, "scan", (function() { return j })), n.d(e, "shuffle", (function() { return U })), n.d(e, "sum", (function() { return z })), n.d(e, "ticks", (function() { return S })), n.d(e, "tickIncrement", (function() { return M })), n.d(e, "tickStep", (function() { return T })), n.d(e, "transpose", (function() { return Y })), n.d(e, "variance", (function() { return p })), n.d(e, "zip", (function() { return H })), n.d(e, "axisTop", (function() { return at })), n.d(e, "axisRight", (function() { return ot })), n.d(e, "axisBottom", (function() { return st })), n.d(e, "axisLeft", (function() { return ut })), n.d(e, "brush", (function() { return Li })), n.d(e, "brushX", (function() { return Ni })), n.d(e, "brushY", (function() { return Ii })), n.d(e, "brushSelection", (function() { return Ci })), n.d(e, "chord", (function() { return zi })), n.d(e, "ribbon", (function() { return na })), n.d(e, "nest", (function() { return oa })), n.d(e, "set", (function() { return pa })), n.d(e, "map", (function() { return aa })), n.d(e, "keys", (function() { return ga })), n.d(e, "values", (function() { return ya })), n.d(e, "entries", (function() { return ba })), n.d(e, "color", (function() { return Ke })), n.d(e, "rgb", (function() { return Qe })), n.d(e, "hsl", (function() { return sn })), n.d(e, "lab", (function() { return Da })), n.d(e, "hcl", (function() { return Pa })), n.d(e, "lch", (function() { return Ra })), n.d(e, "gray", (function() { return Ta })), n.d(e, "cubehelix", (function() { return Ga })), n.d(e, "contours", (function() { return ro })), n.d(e, "contourDensity", (function() { return co })), n.d(e, "dispatch", (function() { return gt })), n.d(e, "drag", (function() { return bo })), n.d(e, "dragDisable", (function() { return Ne })), n.d(e, "dragEnable", (function() { return Ie })), n.d(e, "dsvFormat", (function() { return Mo })), n.d(e, "csvParse", (function() { return Do })), n.d(e, "csvParseRows", (function() { return Co })), n.d(e, "csvFormat", (function() { return No })), n.d(e, "csvFormatBody", (function() { return Io })), n.d(e, "csvFormatRows", (function() { return Lo })), n.d(e, "csvFormatRow", (function() { return Bo })), n.d(e, "csvFormatValue", (function() { return Oo })), n.d(e, "tsvParse", (function() { return Po })), n.d(e, "tsvParseRows", (function() { return Fo })), n.d(e, "tsvFormat", (function() { return qo })), n.d(e, "tsvFormatBody", (function() { return jo })), n.d(e, "tsvFormatRows", (function() { return Uo })), n.d(e, "tsvFormatRow", (function() { return zo })), n.d(e, "tsvFormatValue", (function() { return Yo })), n.d(e, "autoType", (function() { return Vo })), n.d(e, "easeLinear", (function() { return Go })), n.d(e, "easeQuad", (function() { return Ko })), n.d(e, "easeQuadIn", (function() { return $o })), n.d(e, "easeQuadOut", (function() { return Wo })), n.d(e, "easeQuadInOut", (function() { return Ko })), n.d(e, "easeCubic", (function() { return ni })), n.d(e, "easeCubicIn", (function() { return ti })), n.d(e, "easeCubicOut", (function() { return ei })), n.d(e, "easeCubicInOut", (function() { return ni })), n.d(e, "easePoly", (function() { return Jo })), n.d(e, "easePolyIn", (function() { return Xo })), n.d(e, "easePolyOut", (function() { return Zo })), n.d(e, "easePolyInOut", (function() { return Jo })), n.d(e, "easeSin", (function() { return rs })), n.d(e, "easeSinIn", (function() { return es })), n.d(e, "easeSinOut", (function() { return ns })), n.d(e, "easeSinInOut", (function() { return rs })), n.d(e, "easeExp", (function() { return os })), n.d(e, "easeExpIn", (function() { return is })), n.d(e, "easeExpOut", (function() { return as })), n.d(e, "easeExpInOut", (function() { return os })), n.d(e, "easeCircle", (function() { return cs })), n.d(e, "easeCircleIn", (function() { return ss })), n.d(e, "easeCircleOut", (function() { return us })), n.d(e, "easeCircleInOut", (function() { return cs })), n.d(e, "easeBounce", (function() { return ws })), n.d(e, "easeBounceIn", (function() { return _s })), n.d(e, "easeBounceOut", (function() { return ws })), n.d(e, "easeBounceInOut", (function() { return xs })), n.d(e, "easeBack", (function() { return As })), n.d(e, "easeBackIn", (function() { return ks })), n.d(e, "easeBackOut", (function() { return Es })), n.d(e, "easeBackInOut", (function() { return As })), n.d(e, "easeElastic", (function() { return Ts })), n.d(e, "easeElasticIn", (function() { return Ms })), n.d(e, "easeElasticOut", (function() { return Ts })), n.d(e, "easeElasticInOut", (function() { return Ds })), n.d(e, "blob", (function() { return Ns })), n.d(e, "buffer", (function() { return Ls })), n.d(e, "dsv", (function() { return Ps })), n.d(e, "csv", (function() { return Fs })), n.d(e, "tsv", (function() { return qs })), n.d(e, "image", (function() { return js })), n.d(e, "json", (function() { return zs })), n.d(e, "text", (function() { return Os })), n.d(e, "xml", (function() { return Vs })), n.d(e, "html", (function() { return Hs })), n.d(e, "svg", (function() { return Gs })), n.d(e, "forceCenter", (function() { return $s })), n.d(e, "forceCollide", (function() { return ou })), n.d(e, "forceLink", (function() { return cu })), n.d(e, "forceManyBody", (function() { return gu })), n.d(e, "forceRadial", (function() { return yu })), n.d(e, "forceSimulation", (function() { return pu })), n.d(e, "forceX", (function() { return bu })), n.d(e, "forceY", (function() { return vu })), n.d(e, "formatDefaultLocale", (function() { return Ou })), n.d(e, "format", (function() { return Su })), n.d(e, "formatPrefix", (function() { return Mu })), n.d(e, "formatLocale", (function() { return Bu })), n.d(e, "formatSpecifier", (function() { return xu })), n.d(e, "FormatSpecifier", (function() { return ku })), n.d(e, "precisionFixed", (function() { return Ru })), n.d(e, "precisionPrefix", (function() { return Pu })), n.d(e, "precisionRound", (function() { return Fu })), n.d(e, "geoArea", (function() { return Nc })), n.d(e, "geoBounds", (function() { return Ef })), n.d(e, "geoCentroid", (function() { return Rf })), n.d(e, "geoCircle", (function() { return $f })), n.d(e, "geoClipAntimeridian", (function() { return al })), n.d(e, "geoClipCircle", (function() { return ol })), n.d(e, "geoClipExtent", (function() { return pl })), n.d(e, "geoClipRectangle", (function() { return fl })), n.d(e, "geoContains", (function() { return Il })), n.d(e, "geoDistance", (function() { return kl })), n.d(e, "geoGraticule", (function() { return Ol })), n.d(e, "geoGraticule10", (function() { return Rl })), n.d(e, "geoInterpolate", (function() { return Ul })), n.d(e, "geoLength", (function() { return _l })), n.d(e, "geoPath", (function() { return qh })), n.d(e, "geoAlbers", (function() { return ad })), n.d(e, "geoAlbersUsa", (function() { return od })), n.d(e, "geoAzimuthalEqualArea", (function() { return fd })), n.d(e, "geoAzimuthalEqualAreaRaw", (function() { return cd })), n.d(e, "geoAzimuthalEquidistant", (function() { return hd })), n.d(e, "geoAzimuthalEquidistantRaw", (function() { return ld })), n.d(e, "geoConicConformal", (function() { return vd })), n.d(e, "geoConicConformalRaw", (function() { return bd })), n.d(e, "geoConicEqualArea", (function() { return id })), n.d(e, "geoConicEqualAreaRaw", (function() { return rd })), n.d(e, "geoConicEquidistant", (function() { return xd })), n.d(e, "geoConicEquidistantRaw", (function() { return wd })), n.d(e, "geoEqualEarth", (function() { return Dd })), n.d(e, "geoEqualEarthRaw", (function() { return Td })), n.d(e, "geoEquirectangular", (function() { return _d })), n.d(e, "geoEquirectangularRaw", (function() { return md })), n.d(e, "geoGnomonic", (function() { return Nd })), n.d(e, "geoGnomonicRaw", (function() { return Cd })), n.d(e, "geoIdentity", (function() { return Ld })), n.d(e, "geoProjection", (function() { return td })), n.d(e, "geoProjectionMutator", (function() { return ed })), n.d(e, "geoMercator", (function() { return pd })), n.d(e, "geoMercatorRaw", (function() { return dd })), n.d(e, "geoNaturalEarth1", (function() { return Od })), n.d(e, "geoNaturalEarth1Raw", (function() { return Bd })), n.d(e, "geoOrthographic", (function() { return Pd })), n.d(e, "geoOrthographicRaw", (function() { return Rd })), n.d(e, "geoStereographic", (function() { return qd })), n.d(e, "geoStereographicRaw", (function() { return Fd })), n.d(e, "geoTransverseMercator", (function() { return Ud })), n.d(e, "geoTransverseMercatorRaw", (function() { return jd })), n.d(e, "geoRotation", (function() { return Vf })), n.d(e, "geoStream", (function() { return kc })), n.d(e, "geoTransform", (function() { return jh })), n.d(e, "cluster", (function() { return Hd })), n.d(e, "hierarchy", (function() { return $d })), n.d(e, "pack", (function() { return vp })), n.d(e, "packSiblings", (function() { return hp })), n.d(e, "packEnclose", (function() { return Qd })), n.d(e, "partition", (function() { return Ep })), n.d(e, "stratify", (function() { return Cp })), n.d(e, "tree", (function() { return Pp })), n.d(e, "treemap", (function() { return zp })), n.d(e, "treemapBinary", (function() { return Yp })), n.d(e, "treemapDice", (function() { return kp })), n.d(e, "treemapSlice", (function() { return Fp })), n.d(e, "treemapSliceDice", (function() { return Vp })), n.d(e, "treemapSquarify", (function() { return Up })), n.d(e, "treemapResquarify", (function() { return Hp })), n.d(e, "interpolate", (function() { return Bn })), n.d(e, "interpolateArray", (function() { return En })), n.d(e, "interpolateBasis", (function() { return ln })), n.d(e, "interpolateBasisClosed", (function() { return hn })), n.d(e, "interpolateDate", (function() { return Sn })), n.d(e, "interpolateDiscrete", (function() { return Gp })), n.d(e, "interpolateHue", (function() { return $p })), n.d(e, "interpolateNumber", (function() { return Mn })), n.d(e, "interpolateNumberArray", (function() { return xn })), n.d(e, "interpolateObject", (function() { return Tn })), n.d(e, "interpolateRound", (function() { return Wp })), n.d(e, "interpolateString", (function() { return Ln })), n.d(e, "interpolateTransformCss", (function() { return Ar })), n.d(e, "interpolateTransformSvg", (function() { return Sr })), n.d(e, "interpolateZoom", (function() { return Zp })), n.d(e, "interpolateRgb", (function() { return vn })), n.d(e, "interpolateRgbBasis", (function() { return _n })), n.d(e, "interpolateRgbBasisClosed", (function() { return wn })), n.d(e, "interpolateHsl", (function() { return Qp })), n.d(e, "interpolateHslLong", (function() { return tg })), n.d(e, "interpolateLab", (function() { return eg })), n.d(e, "interpolateHcl", (function() { return rg })), n.d(e, "interpolateHclLong", (function() { return ig })), n.d(e, "interpolateCubehelix", (function() { return og })), n.d(e, "interpolateCubehelixLong", (function() { return sg })), n.d(e, "piecewise", (function() { return ug })), n.d(e, "quantize", (function() { return cg })), n.d(e, "path", (function() { return Xi })), n.d(e, "polygonArea", (function() { return fg })), n.d(e, "polygonCentroid", (function() { return lg })), n.d(e, "polygonHull", (function() { return gg })), n.d(e, "polygonContains", (function() { return yg })), n.d(e, "polygonLength", (function() { return bg })), n.d(e, "quadtree", (function() { return tu })), n.d(e, "randomUniform", (function() { return mg })), n.d(e, "randomNormal", (function() { return _g })), n.d(e, "randomLogNormal", (function() { return wg })), n.d(e, "randomBates", (function() { return kg })), n.d(e, "randomIrwinHall", (function() { return xg })), n.d(e, "randomExponential", (function() { return Eg })), n.d(e, "scaleBand", (function() { return Ig })), n.d(e, "scalePoint", (function() { return Lg })), n.d(e, "scaleIdentity", (function() { return Wg })), n.d(e, "scaleLinear", (function() { return $g })), n.d(e, "scaleLog", (function() { return ry })), n.d(e, "scaleSymlog", (function() { return sy })), n.d(e, "scaleOrdinal", (function() { return Ng })), n.d(e, "scaleImplicit", (function() { return Cg })), n.d(e, "scalePow", (function() { return hy })), n.d(e, "scaleSqrt", (function() { return dy })), n.d(e, "scaleQuantile", (function() { return py })), n.d(e, "scaleQuantize", (function() { return gy })), n.d(e, "scaleThreshold", (function() { return yy })), n.d(e, "scaleTime", (function() { return nm })), n.d(e, "scaleUtc", (function() { return hm })), n.d(e, "scaleSequential", (function() { return gm })), n.d(e, "scaleSequentialLog", (function() { return ym })), n.d(e, "scaleSequentialPow", (function() { return vm })), n.d(e, "scaleSequentialSqrt", (function() { return mm })), n.d(e, "scaleSequentialSymlog", (function() { return bm })), n.d(e, "scaleSequentialQuantile", (function() { return _m })), n.d(e, "scaleDiverging", (function() { return xm })), n.d(e, "scaleDivergingLog", (function() { return km })), n.d(e, "scaleDivergingPow", (function() { return Am })), n.d(e, "scaleDivergingSqrt", (function() { return Sm })), n.d(e, "scaleDivergingSymlog", (function() { return Em })), n.d(e, "tickFormat", (function() { return Hg })), n.d(e, "schemeCategory10", (function() { return Tm })), n.d(e, "schemeAccent", (function() { return Dm })), n.d(e, "schemeDark2", (function() { return Cm })), n.d(e, "schemePaired", (function() { return Nm })), n.d(e, "schemePastel1", (function() { return Im })), n.d(e, "schemePastel2", (function() { return Lm })), n.d(e, "schemeSet1", (function() { return Bm })), n.d(e, "schemeSet2", (function() { return Om })), n.d(e, "schemeSet3", (function() { return Rm })), n.d(e, "schemeTableau10", (function() { return Pm })), n.d(e, "interpolateBrBG", (function() { return jm })), n.d(e, "schemeBrBG", (function() { return qm })), n.d(e, "interpolatePRGn", (function() { return zm })), n.d(e, "schemePRGn", (function() { return Um })), n.d(e, "interpolatePiYG", (function() { return Vm })), n.d(e, "schemePiYG", (function() { return Ym })), n.d(e, "interpolatePuOr", (function() { return Gm })), n.d(e, "schemePuOr", (function() { return Hm })), n.d(e, "interpolateRdBu", (function() { return Wm })), n.d(e, "schemeRdBu", (function() { return $m })), n.d(e, "interpolateRdGy", (function() { return Xm })), n.d(e, "schemeRdGy", (function() { return Km })), n.d(e, "interpolateRdYlBu", (function() { return Jm })), n.d(e, "schemeRdYlBu", (function() { return Zm })), n.d(e, "interpolateRdYlGn", (function() { return t_ })), n.d(e, "schemeRdYlGn", (function() { return Qm })), n.d(e, "interpolateSpectral", (function() { return n_ })), n.d(e, "schemeSpectral", (function() { return e_ })), n.d(e, "interpolateBuGn", (function() { return i_ })), n.d(e, "schemeBuGn", (function() { return r_ })), n.d(e, "interpolateBuPu", (function() { return o_ })), n.d(e, "schemeBuPu", (function() { return a_ })), n.d(e, "interpolateGnBu", (function() { return u_ })), n.d(e, "schemeGnBu", (function() { return s_ })), n.d(e, "interpolateOrRd", (function() { return f_ })), n.d(e, "schemeOrRd", (function() { return c_ })), n.d(e, "interpolatePuBuGn", (function() { return h_ })), n.d(e, "schemePuBuGn", (function() { return l_ })), n.d(e, "interpolatePuBu", (function() { return p_ })), n.d(e, "schemePuBu", (function() { return d_ })), n.d(e, "interpolatePuRd", (function() { return y_ })), n.d(e, "schemePuRd", (function() { return g_ })), n.d(e, "interpolateRdPu", (function() { return v_ })), n.d(e, "schemeRdPu", (function() { return b_ })), n.d(e, "interpolateYlGnBu", (function() { return __ })), n.d(e, "schemeYlGnBu", (function() { return m_ })), n.d(e, "interpolateYlGn", (function() { return x_ })), n.d(e, "schemeYlGn", (function() { return w_ })), n.d(e, "interpolateYlOrBr", (function() { return E_ })), n.d(e, "schemeYlOrBr", (function() { return k_ })), n.d(e, "interpolateYlOrRd", (function() { return S_ })), n.d(e, "schemeYlOrRd", (function() { return A_ })), n.d(e, "interpolateBlues", (function() { return T_ })), n.d(e, "schemeBlues", (function() { return M_ })), n.d(e, "interpolateGreens", (function() { return C_ })), n.d(e, "schemeGreens", (function() { return D_ })), n.d(e, "interpolateGreys", (function() { return I_ })), n.d(e, "schemeGreys", (function() { return N_ })), n.d(e, "interpolatePurples", (function() { return B_ })), n.d(e, "schemePurples", (function() { return L_ })), n.d(e, "interpolateReds", (function() { return R_ })), n.d(e, "schemeReds", (function() { return O_ })), n.d(e, "interpolateOranges", (function() { return F_ })), n.d(e, "schemeOranges", (function() { return P_ })), n.d(e, "interpolateCividis", (function() { return q_ })), n.d(e, "interpolateCubehelixDefault", (function() { return j_ })), n.d(e, "interpolateRainbow", (function() { return V_ })), n.d(e, "interpolateWarm", (function() { return U_ })), n.d(e, "interpolateCool", (function() { return z_ })), n.d(e, "interpolateSinebow", (function() { return W_ })), n.d(e, "interpolateTurbo", (function() { return K_ })), n.d(e, "interpolateViridis", (function() { return Z_ })), n.d(e, "interpolateMagma", (function() { return J_ })), n.d(e, "interpolateInferno", (function() { return Q_ })), n.d(e, "interpolatePlasma", (function() { return tw })), n.d(e, "create", (function() { return ew })), n.d(e, "creator", (function() { return ue })), n.d(e, "local", (function() { return rw })), n.d(e, "matcher", (function() { return _t })), n.d(e, "mouse", (function() { return Fn })), n.d(e, "namespace", (function() { return Dt })), n.d(e, "namespaces", (function() { return Tt })), n.d(e, "clientPoint", (function() { return Rn })), n.d(e, "select", (function() { return Te })), n.d(e, "selectAll", (function() { return aw })), n.d(e, "selection", (function() { return Me })), n.d(e, "selector", (function() { return bt })), n.d(e, "selectorAll", (function() { return mt })), n.d(e, "style", (function() { return jt })), n.d(e, "touch", (function() { return Pn })), n.d(e, "touches", (function() { return ow })), n.d(e, "window", (function() { return Rt })), n.d(e, "event", (function() { return pe })), n.d(e, "customEvent", (function() { return _e })), n.d(e, "arc", (function() { return Sw })), n.d(e, "area", (function() { return Iw })), n.d(e, "line", (function() { return Nw })), n.d(e, "pie", (function() { return Ow })), n.d(e, "areaRadial", (function() { return Uw })), n.d(e, "radialArea", (function() { return Uw })), n.d(e, "lineRadial", (function() { return jw })), n.d(e, "radialLine", (function() { return jw })), n.d(e, "pointRadial", (function() { return zw })), n.d(e, "linkHorizontal", (function() { return Xw })), n.d(e, "linkVertical", (function() { return Zw })), n.d(e, "linkRadial", (function() { return Jw })), n.d(e, "symbol", (function() { return yx })), n.d(e, "symbols", (function() { return gx })), n.d(e, "symbolCircle", (function() { return Qw })), n.d(e, "symbolCross", (function() { return tx })), n.d(e, "symbolDiamond", (function() { return rx })), n.d(e, "symbolSquare", (function() { return ux })), n.d(e, "symbolStar", (function() { return sx })), n.d(e, "symbolTriangle", (function() { return fx })), n.d(e, "symbolWye", (function() { return px })), n.d(e, "curveBasisClosed", (function() { return xx })), n.d(e, "curveBasisOpen", (function() { return Ex })), n.d(e, "curveBasis", (function() { return _x })), n.d(e, "curveBundle", (function() { return Sx })), n.d(e, "curveCardinalClosed", (function() { return Nx })), n.d(e, "curveCardinalOpen", (function() { return Lx })), n.d(e, "curveCardinal", (function() { return Dx })), n.d(e, "curveCatmullRomClosed", (function() { return Fx })), n.d(e, "curveCatmullRomOpen", (function() { return jx })), n.d(e, "curveCatmullRom", (function() { return Rx })), n.d(e, "curveLinearClosed", (function() { return zx })), n.d(e, "curveLinear", (function() { return Tw })), n.d(e, "curveMonotoneX", (function() { return Xx })), n.d(e, "curveMonotoneY", (function() { return Zx })), n.d(e, "curveNatural", (function() { return tk })), n.d(e, "curveStep", (function() { return nk })), n.d(e, "curveStepAfter", (function() { return ik })), n.d(e, "curveStepBefore", (function() { return rk })), n.d(e, "stack", (function() { return uk })), n.d(e, "stackOffsetExpand", (function() { return ck })), n.d(e, "stackOffsetDiverging", (function() { return fk })), n.d(e, "stackOffsetNone", (function() { return ak })), n.d(e, "stackOffsetSilhouette", (function() { return lk })), n.d(e, "stackOffsetWiggle", (function() { return hk })), n.d(e, "stackOrderAppearance", (function() { return dk })), n.d(e, "stackOrderAscending", (function() { return gk })), n.d(e, "stackOrderDescending", (function() { return bk })), n.d(e, "stackOrderInsideOut", (function() { return vk })), n.d(e, "stackOrderNone", (function() { return ok })), n.d(e, "stackOrderReverse", (function() { return mk })), n.d(e, "timeInterval", (function() { return my })), n.d(e, "timeMillisecond", (function() { return nb })), n.d(e, "timeMilliseconds", (function() { return rb })), n.d(e, "utcMillisecond", (function() { return nb })), n.d(e, "utcMilliseconds", (function() { return rb })), n.d(e, "timeSecond", (function() { return Qy })), n.d(e, "timeSeconds", (function() { return tb })), n.d(e, "utcSecond", (function() { return Qy })), n.d(e, "utcSeconds", (function() { return tb })), n.d(e, "timeMinute", (function() { return Xy })), n.d(e, "timeMinutes", (function() { return Zy })), n.d(e, "timeHour", (function() { return $y })), n.d(e, "timeHours", (function() { return Wy })), n.d(e, "timeDay", (function() { return Vy })), n.d(e, "timeDays", (function() { return Hy })), n.d(e, "timeWeek", (function() { return Dy })), n.d(e, "timeWeeks", (function() { return Ry })), n.d(e, "timeSunday", (function() { return Dy })), n.d(e, "timeSundays", (function() { return Ry })), n.d(e, "timeMonday", (function() { return Cy })), n.d(e, "timeMondays", (function() { return Py })), n.d(e, "timeTuesday", (function() { return Ny })), n.d(e, "timeTuesdays", (function() { return Fy })), n.d(e, "timeWednesday", (function() { return Iy })), n.d(e, "timeWednesdays", (function() { return qy })), n.d(e, "timeThursday", (function() { return Ly })), n.d(e, "timeThursdays", (function() { return jy })), n.d(e, "timeFriday", (function() { return By })), n.d(e, "timeFridays", (function() { return Uy })), n.d(e, "timeSaturday", (function() { return Oy })), n.d(e, "timeSaturdays", (function() { return zy })), n.d(e, "timeMonth", (function() { return Ey })), n.d(e, "timeMonths", (function() { return Ay })), n.d(e, "timeYear", (function() { return wy })), n.d(e, "timeYears", (function() { return xy })), n.d(e, "utcMinute", (function() { return fm })), n.d(e, "utcMinutes", (function() { return lm })), n.d(e, "utcHour", (function() { return sm })), n.d(e, "utcHours", (function() { return um })), n.d(e, "utcDay", (function() { return _b })), n.d(e, "utcDays", (function() { return wb })), n.d(e, "utcWeek", (function() { return ab })), n.d(e, "utcWeeks", (function() { return hb })), n.d(e, "utcSunday", (function() { return ab })), n.d(e, "utcSundays", (function() { return hb })), n.d(e, "utcMonday", (function() { return ob })), n.d(e, "utcMondays", (function() { return db })), n.d(e, "utcTuesday", (function() { return sb })), n.d(e, "utcTuesdays", (function() { return pb })), n.d(e, "utcWednesday", (function() { return ub })), n.d(e, "utcWednesdays", (function() { return gb })), n.d(e, "utcThursday", (function() { return cb })), n.d(e, "utcThursdays", (function() { return yb })), n.d(e, "utcFriday", (function() { return fb })), n.d(e, "utcFridays", (function() { return bb })), n.d(e, "utcSaturday", (function() { return lb })), n.d(e, "utcSaturdays", (function() { return vb })), n.d(e, "utcMonth", (function() { return im })), n.d(e, "utcMonths", (function() { return am })), n.d(e, "utcYear", (function() { return kb })), n.d(e, "utcYears", (function() { return Eb })), n.d(e, "timeFormatDefaultLocale", (function() { return Hv })), n.d(e, "timeFormat", (function() { return Cb })), n.d(e, "timeParse", (function() { return Nb })), n.d(e, "utcFormat", (function() { return Ib })), n.d(e, "utcParse", (function() { return Lb })), n.d(e, "timeFormatLocale", (function() { return Tb })), n.d(e, "isoFormat", (function() { return _k })), n.d(e, "isoParse", (function() { return wk })), n.d(e, "now", (function() { return Wn })), n.d(e, "timer", (function() { return Zn })), n.d(e, "timerFlush", (function() { return Jn })), n.d(e, "timeout", (function() { return nr })), n.d(e, "interval", (function() { return xk })), n.d(e, "transition", (function() { return Zr })), n.d(e, "active", (function() { return oi })), n.d(e, "interrupt", (function() { return _r })), n.d(e, "voronoi", (function() { return sE })), n.d(e, "zoom", (function() { return wE })), n.d(e, "zoomTransform", (function() { return hE })), n.d(e, "zoomIdentity", (function() { return lE })) }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [1, 2], n = [1, 3], r = [1, 4], i = [2, 4], a = [1, 9], o = [1, 11], s = [1, 12], u = [1, 14], c = [1, 15], f = [1, 17], l = [1, 18], h = [1, 19], d = [1, 20], p = [1, 21], g = [1, 22], y = [1, 24], b = [1, 25], v = [1, 4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 24, 26, 28, 29, 30, 41], m = [1, 33], _ = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 24, 26, 30, 41], w = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 24, 26, 29, 30, 41], x = [4, 5, 10, 15, 16, 18, 20, 21, 22, 23, 24, 26, 28, 30, 41], k = [39, 40, 41], E = { trace: function() {}, yy: {}, symbols_: { error: 2, start: 3, SPACE: 4, NL: 5, SD: 6, document: 7, line: 8, statement: 9, participant: 10, actor: 11, AS: 12, restOfLine: 13, signal: 14, activate: 15, deactivate: 16, note_statement: 17, title: 18, text2: 19, loop: 20, end: 21, rect: 22, opt: 23, alt: 24, else_sections: 25, par: 26, par_sections: 27, and: 28, else: 29, note: 30, placement: 31, over: 32, actor_pair: 33, spaceList: 34, ",": 35, left_of: 36, right_of: 37, signaltype: 38, "+": 39, "-": 40, ACTOR: 41, SOLID_OPEN_ARROW: 42, DOTTED_OPEN_ARROW: 43, SOLID_ARROW: 44, DOTTED_ARROW: 45, SOLID_CROSS: 46, DOTTED_CROSS: 47, TXT: 48, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 10: "participant", 12: "AS", 13: "restOfLine", 15: "activate", 16: "deactivate", 18: "title", 20: "loop", 21: "end", 22: "rect", 23: "opt", 24: "alt", 26: "par", 28: "and", 29: "else", 30: "note", 32: "over", 35: ",", 36: "left_of", 37: "right_of", 39: "+", 40: "-", 41: "ACTOR", 42: "SOLID_OPEN_ARROW", 43: "DOTTED_OPEN_ARROW", 44: "SOLID_ARROW", 45: "DOTTED_ARROW", 46: "SOLID_CROSS", 47: "DOTTED_CROSS", 48: "TXT" }, productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 5], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 3], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [27, 1], [27, 4], [25, 1], [25, 4], [17, 4], [17, 4], [34, 2], [34, 1], [33, 3], [33, 1], [31, 1], [31, 1], [14, 5], [14, 5], [14, 4], [11, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [19, 1] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 3: return r.apply(a[s]), a[s]; case 4: this.$ = []; break; case 5: a[s - 1].push(a[s]), this.$ = a[s - 1]; break; case 6: case 7: this.$ = a[s]; break; case 8: this.$ = []; break; case 9: a[s - 3].description = a[s - 1], this.$ = a[s - 3]; break; case 10: this.$ = a[s - 1]; break; case 12: this.$ = { type: "activeStart", signalType: r.LINETYPE.ACTIVE_START, actor: a[s - 1] }; break; case 13: this.$ = { type: "activeEnd", signalType: r.LINETYPE.ACTIVE_END, actor: a[s - 1] }; break; case 15: this.$ = [{ type: "setTitle", text: a[s - 1] }]; break; case 16: a[s - 1].unshift({ type: "loopStart", loopText: a[s - 2], signalType: r.LINETYPE.LOOP_START }), a[s - 1].push({ type: "loopEnd", loopText: a[s - 2], signalType: r.LINETYPE.LOOP_END }), this.$ = a[s - 1]; break; case 17: a[s - 1].unshift({ type: "rectStart", color: a[s - 2], signalType: r.LINETYPE.RECT_START }), a[s - 1].push({ type: "rectEnd", color: a[s - 2], signalType: r.LINETYPE.RECT_END }), this.$ = a[s - 1]; break; case 18: a[s - 1].unshift({ type: "optStart", optText: a[s - 2], signalType: r.LINETYPE.OPT_START }), a[s - 1].push({ type: "optEnd", optText: a[s - 2], signalType: r.LINETYPE.OPT_END }), this.$ = a[s - 1]; break; case 19: a[s - 1].unshift({ type: "altStart", altText: a[s - 2], signalType: r.LINETYPE.ALT_START }), a[s - 1].push({ type: "altEnd", signalType: r.LINETYPE.ALT_END }), this.$ = a[s - 1]; break; case 20: a[s - 1].unshift({ type: "parStart", parText: a[s - 2], signalType: r.LINETYPE.PAR_START }), a[s - 1].push({ type: "parEnd", signalType: r.LINETYPE.PAR_END }), this.$ = a[s - 1]; break; case 22: this.$ = a[s - 3].concat([{ type: "and", parText: a[s - 1], signalType: r.LINETYPE.PAR_AND }, a[s]]); break; case 24: this.$ = a[s - 3].concat([{ type: "else", altText: a[s - 1], signalType: r.LINETYPE.ALT_ELSE }, a[s]]); break; case 25: this.$ = [a[s - 1], { type: "addNote", placement: a[s - 2], actor: a[s - 1].actor, text: a[s] }]; break; case 26: a[s - 2] = [].concat(a[s - 1], a[s - 1]).slice(0, 2), a[s - 2][0] = a[s - 2][0].actor, a[s - 2][1] = a[s - 2][1].actor, this.$ = [a[s - 1], { type: "addNote", placement: r.PLACEMENT.OVER, actor: a[s - 2].slice(0, 2), text: a[s] }]; break; case 29: this.$ = [a[s - 2], a[s]]; break; case 30: this.$ = a[s]; break; case 31: this.$ = r.PLACEMENT.LEFTOF; break; case 32: this.$ = r.PLACEMENT.RIGHTOF; break; case 33: this.$ = [a[s - 4], a[s - 1], { type: "addMessage", from: a[s - 4].actor, to: a[s - 1].actor, signalType: a[s - 3], msg: a[s] }, { type: "activeStart", signalType: r.LINETYPE.ACTIVE_START, actor: a[s - 1] }]; break; case 34: this.$ = [a[s - 4], a[s - 1], { type: "addMessage", from: a[s - 4].actor, to: a[s - 1].actor, signalType: a[s - 3], msg: a[s] }, { type: "activeEnd", signalType: r.LINETYPE.ACTIVE_END, actor: a[s - 4] }]; break; case 35: this.$ = [a[s - 3], a[s - 1], { type: "addMessage", from: a[s - 3].actor, to: a[s - 1].actor, signalType: a[s - 2], msg: a[s] }]; break; case 36: this.$ = { type: "addActor", actor: a[s] }; break; case 37: this.$ = r.LINETYPE.SOLID_OPEN; break; case 38: this.$ = r.LINETYPE.DOTTED_OPEN; break; case 39: this.$ = r.LINETYPE.SOLID; break; case 40: this.$ = r.LINETYPE.DOTTED; break; case 41: this.$ = r.LINETYPE.SOLID_CROSS; break; case 42: this.$ = r.LINETYPE.DOTTED_CROSS; break; case 43: this.$ = a[s].substring(1).trim().replace(/\\n/gm, "\n") } }, table: [{ 3: 1, 4: e, 5: n, 6: r }, { 1: [3] }, { 3: 5, 4: e, 5: n, 6: r }, { 3: 6, 4: e, 5: n, 6: r }, t([1, 4, 5, 10, 15, 16, 18, 20, 22, 23, 24, 26, 30, 41], i, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: a, 5: o, 8: 8, 9: 10, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 22: h, 23: d, 24: p, 26: g, 30: y, 41: b }, t(v, [2, 5]), { 9: 26, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 22: h, 23: d, 24: p, 26: g, 30: y, 41: b }, t(v, [2, 7]), t(v, [2, 8]), { 11: 27, 41: b }, { 5: [1, 28] }, { 11: 29, 41: b }, { 11: 30, 41: b }, { 5: [1, 31] }, { 19: 32, 48: m }, { 13: [1, 34] }, { 13: [1, 35] }, { 13: [1, 36] }, { 13: [1, 37] }, { 13: [1, 38] }, { 38: 39, 42: [1, 40], 43: [1, 41], 44: [1, 42], 45: [1, 43], 46: [1, 44], 47: [1, 45] }, { 31: 46, 32: [1, 47], 36: [1, 48], 37: [1, 49] }, t([5, 12, 35, 42, 43, 44, 45, 46, 47, 48], [2, 36]), t(v, [2, 6]), { 5: [1, 51], 12: [1, 50] }, t(v, [2, 11]), { 5: [1, 52] }, { 5: [1, 53] }, t(v, [2, 14]), { 5: [1, 54] }, { 5: [2, 43] }, t(_, i, { 7: 55 }), t(_, i, { 7: 56 }), t(_, i, { 7: 57 }), t(w, i, { 25: 58, 7: 59 }), t(x, i, { 27: 60, 7: 61 }), { 11: 64, 39: [1, 62], 40: [1, 63], 41: b }, t(k, [2, 37]), t(k, [2, 38]), t(k, [2, 39]), t(k, [2, 40]), t(k, [2, 41]), t(k, [2, 42]), { 11: 65, 41: b }, { 11: 67, 33: 66, 41: b }, { 41: [2, 31] }, { 41: [2, 32] }, { 13: [1, 68] }, t(v, [2, 10]), t(v, [2, 12]), t(v, [2, 13]), t(v, [2, 15]), { 4: a, 5: o, 8: 8, 9: 10, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 21: [1, 69], 22: h, 23: d, 24: p, 26: g, 30: y, 41: b }, { 4: a, 5: o, 8: 8, 9: 10, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 21: [1, 70], 22: h, 23: d, 24: p, 26: g, 30: y, 41: b }, { 4: a, 5: o, 8: 8, 9: 10, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 21: [1, 71], 22: h, 23: d, 24: p, 26: g, 30: y, 41: b }, { 21: [1, 72] }, { 4: a, 5: o, 8: 8, 9: 10, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 21: [2, 23], 22: h, 23: d, 24: p, 26: g, 29: [1, 73], 30: y, 41: b }, { 21: [1, 74] }, { 4: a, 5: o, 8: 8, 9: 10, 10: s, 11: 23, 14: 13, 15: u, 16: c, 17: 16, 18: f, 20: l, 21: [2, 21], 22: h, 23: d, 24: p, 26: g, 28: [1, 75], 30: y, 41: b }, { 11: 76, 41: b }, { 11: 77, 41: b }, { 19: 78, 48: m }, { 19: 79, 48: m }, { 19: 80, 48: m }, { 35: [1, 81], 48: [2, 30] }, { 5: [1, 82] }, t(v, [2, 16]), t(v, [2, 17]), t(v, [2, 18]), t(v, [2, 19]), { 13: [1, 83] }, t(v, [2, 20]), { 13: [1, 84] }, { 19: 85, 48: m }, { 19: 86, 48: m }, { 5: [2, 35] }, { 5: [2, 25] }, { 5: [2, 26] }, { 11: 87, 41: b }, t(v, [2, 9]), t(w, i, { 7: 59, 25: 88 }), t(x, i, { 7: 61, 27: 89 }), { 5: [2, 33] }, { 5: [2, 34] }, { 48: [2, 29] }, { 21: [2, 24] }, { 21: [2, 22] }], defaultActions: { 5: [2, 1], 6: [2, 2], 33: [2, 43], 48: [2, 31], 49: [2, 32], 78: [2, 35], 79: [2, 25], 80: [2, 26], 85: [2, 33], 86: [2, 34], 87: [2, 29], 88: [2, 24], 89: [2, 22] }, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, A = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: { "case-insensitive": !0 }, performAction: function(t, e, n, r) { switch (n) { case 0: return 5; case 1: case 2: case 3: case 4: break; case 5: return this.begin("ID"), 10; case 6: return e.yytext = e.yytext.trim(), this.begin("ALIAS"), 41; case 7: return this.popState(), this.popState(), this.begin("LINE"), 12; case 8: return this.popState(), this.popState(), 5; case 9: return this.begin("LINE"), 20; case 10: return this.begin("LINE"), 22; case 11: return this.begin("LINE"), 23; case 12: return this.begin("LINE"), 24; case 13: return this.begin("LINE"), 29; case 14: return this.begin("LINE"), 26; case 15: return this.begin("LINE"), 28; case 16: return this.popState(), 13; case 17: return 21; case 18: return 36; case 19: return 37; case 20: return 32; case 21: return 30; case 22: return this.begin("ID"), 15; case 23: return this.begin("ID"), 16; case 24: return 18; case 25: return 6; case 26: return 35; case 27: return 5; case 28: return e.yytext = e.yytext.trim(), 41; case 29: return 44; case 30: return 45; case 31: return 42; case 32: return 43; case 33: return 46; case 34: return 47; case 35: return 48; case 36: return 39; case 37: return 40; case 38: return 5; case 39: return "INVALID" } }, rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:participant\b)/i, /^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:and\b)/i, /^(?:[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\b)/i, /^(?:sequenceDiagram\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?::[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i], conditions: { LINE: { rules: [2, 3, 16], inclusive: !1 }, ALIAS: { rules: [2, 3, 7, 8], inclusive: !1 }, ID: { rules: [2, 3, 6], inclusive: !1 }, INITIAL: { rules: [0, 1, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], inclusive: !0 } } }; function S() { this.yy = {} } return E.lexer = A, S.prototype = E, E.Parser = S, new S }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e) { "function" == typeof Object.create ? t.exports = function(t, e) { e && (t.super_ = e, t.prototype = Object.create(e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })) } : t.exports = function(t, e) { if (e) { t.super_ = e; var n = function() {}; n.prototype = e.prototype, t.prototype = new n, t.prototype.constructor = t } } }, function(t, e, n) { var r = n(8), i = r.Buffer; function a(t, e) { for (var n in t) e[n] = t[n] } function o(t, e, n) { return i(t, e, n) } i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? t.exports = r : (a(r, e), e.Buffer = o), o.prototype = Object.create(i.prototype), a(i, o), o.from = function(t, e, n) { if ("number" == typeof t) throw new TypeError("Argument must not be a number"); return i(t, e, n) }, o.alloc = function(t, e, n) { if ("number" != typeof t) throw new TypeError("Argument must be a number"); var r = i(t); return void 0 !== e ? "string" == typeof n ? r.fill(e, n) : r.fill(e) : r.fill(0), r }, o.allocUnsafe = function(t) { if ("number" != typeof t) throw new TypeError("Argument must be a number"); return i(t) }, o.allocUnsafeSlow = function(t) { if ("number" != typeof t) throw new TypeError("Argument must be a number"); return r.SlowBuffer(t) } }, function(t, e, n) { var r; try { r = { cloneDeep: n(350), constant: n(99), defaults: n(176), each: n(100), filter: n(150), find: n(351), flatten: n(178), forEach: n(148), forIn: n(356), has: n(106), isUndefined: n(161), last: n(357), map: n(162), mapValues: n(358), max: n(359), merge: n(361), min: n(366), minBy: n(367), now: n(368), pick: n(183), range: n(184), reduce: n(164), sortBy: n(375), uniqueId: n(185), values: n(169), zipObject: n(380) } } catch (t) {} r || (r = window._), t.exports = r }, function(t, e, n) { (function(t) { ! function(t, e) { "use strict"; function r(t, e) { if (!t) throw new Error(e || "Assertion failed") } function i(t, e) { t.super_ = e; var n = function() {}; n.prototype = e.prototype, t.prototype = new n, t.prototype.constructor = t } function a(t, e, n) { if (a.isBN(t)) return t; this.negative = 0, this.words = null, this.length = 0, this.red = null, null !== t && ("le" !== e && "be" !== e || (n = e, e = 10), this._init(t || 0, e || 10, n || "be")) } var o; "object" == typeof t ? t.exports = a : e.BN = a, a.BN = a, a.wordSize = 26; try { o = n(457).Buffer } catch (t) {} function s(t, e, n) { for (var r = 0, i = Math.min(t.length, n), a = e; a < i; a++) { var o = t.charCodeAt(a) - 48; r <<= 4, r |= o >= 49 && o <= 54 ? o - 49 + 10 : o >= 17 && o <= 22 ? o - 17 + 10 : 15 & o } return r } function u(t, e, n, r) { for (var i = 0, a = Math.min(t.length, n), o = e; o < a; o++) { var s = t.charCodeAt(o) - 48; i *= r, i += s >= 49 ? s - 49 + 10 : s >= 17 ? s - 17 + 10 : s } return i } a.isBN = function(t) { return t instanceof a || null !== t && "object" == typeof t && t.constructor.wordSize === a.wordSize && Array.isArray(t.words) }, a.max = function(t, e) { return t.cmp(e) > 0 ? t : e }, a.min = function(t, e) { return t.cmp(e) < 0 ? t : e }, a.prototype._init = function(t, e, n) { if ("number" == typeof t) return this._initNumber(t, e, n); if ("object" == typeof t) return this._initArray(t, e, n); "hex" === e && (e = 16), r(e === (0 | e) && e >= 2 && e <= 36); var i = 0; "-" === (t = t.toString().replace(/\s+/g, ""))[0] && i++, 16 === e ? this._parseHex(t, i) : this._parseBase(t, e, i), "-" === t[0] && (this.negative = 1), this.strip(), "le" === n && this._initArray(this.toArray(), e, n) }, a.prototype._initNumber = function(t, e, n) { t < 0 && (this.negative = 1, t = -t), t < 67108864 ? (this.words = [67108863 & t], this.length = 1) : t < 4503599627370496 ? (this.words = [67108863 & t, t / 67108864 & 67108863], this.length = 2) : (r(t < 9007199254740992), this.words = [67108863 & t, t / 67108864 & 67108863, 1], this.length = 3), "le" === n && this._initArray(this.toArray(), e, n) }, a.prototype._initArray = function(t, e, n) { if (r("number" == typeof t.length), t.length <= 0) return this.words = [0], this.length = 1, this; this.length = Math.ceil(t.length / 3), this.words = new Array(this.length); for (var i = 0; i < this.length; i++) this.words[i] = 0; var a, o, s = 0; if ("be" === n) for (i = t.length - 1, a = 0; i >= 0; i -= 3) o = t[i] | t[i - 1] << 8 | t[i - 2] << 16, this.words[a] |= o << s & 67108863, this.words[a + 1] = o >>> 26 - s & 67108863, (s += 24) >= 26 && (s -= 26, a++); else if ("le" === n) for (i = 0, a = 0; i < t.length; i += 3) o = t[i] | t[i + 1] << 8 | t[i + 2] << 16, this.words[a] |= o << s & 67108863, this.words[a + 1] = o >>> 26 - s & 67108863, (s += 24) >= 26 && (s -= 26, a++); return this.strip() }, a.prototype._parseHex = function(t, e) { this.length = Math.ceil((t.length - e) / 6), this.words = new Array(this.length); for (var n = 0; n < this.length; n++) this.words[n] = 0; var r, i, a = 0; for (n = t.length - 6, r = 0; n >= e; n -= 6) i = s(t, n, n + 6), this.words[r] |= i << a & 67108863, this.words[r + 1] |= i >>> 26 - a & 4194303, (a += 24) >= 26 && (a -= 26, r++); n + 6 !== e && (i = s(t, e, n + 6), this.words[r] |= i << a & 67108863, this.words[r + 1] |= i >>> 26 - a & 4194303), this.strip() }, a.prototype._parseBase = function(t, e, n) { this.words = [0], this.length = 1; for (var r = 0, i = 1; i <= 67108863; i *= e) r++; r--, i = i / e | 0; for (var a = t.length - n, o = a % r, s = Math.min(a, a - o) + n, c = 0, f = n; f < s; f += r) c = u(t, f, f + r, e), this.imuln(i), this.words[0] + c < 67108864 ? this.words[0] += c : this._iaddn(c); if (0 !== o) { var l = 1; for (c = u(t, f, t.length, e), f = 0; f < o; f++) l *= e; this.imuln(l), this.words[0] + c < 67108864 ? this.words[0] += c : this._iaddn(c) } }, a.prototype.copy = function(t) { t.words = new Array(this.length); for (var e = 0; e < this.length; e++) t.words[e] = this.words[e]; t.length = this.length, t.negative = this.negative, t.red = this.red }, a.prototype.clone = function() { var t = new a(null); return this.copy(t), t }, a.prototype._expand = function(t) { for (; this.length < t;) this.words[this.length++] = 0; return this }, a.prototype.strip = function() { for (; this.length > 1 && 0 === this.words[this.length - 1];) this.length--; return this._normSign() }, a.prototype._normSign = function() { return 1 === this.length && 0 === this.words[0] && (this.negative = 0), this }, a.prototype.inspect = function() { return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">" }; var c = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"], f = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], l = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; function h(t, e, n) { n.negative = e.negative ^ t.negative; var r = t.length + e.length | 0; n.length = r, r = r - 1 | 0; var i = 0 | t.words[0], a = 0 | e.words[0], o = i * a, s = 67108863 & o, u = o / 67108864 | 0; n.words[0] = s; for (var c = 1; c < r; c++) { for (var f = u >>> 26, l = 67108863 & u, h = Math.min(c, e.length - 1), d = Math.max(0, c - t.length + 1); d <= h; d++) { var p = c - d | 0; f += (o = (i = 0 | t.words[p]) * (a = 0 | e.words[d]) + l) / 67108864 | 0, l = 67108863 & o } n.words[c] = 0 | l, u = 0 | f } return 0 !== u ? n.words[c] = 0 | u : n.length--, n.strip() } a.prototype.toString = function(t, e) { var n; if (e = 0 | e || 1, 16 === (t = t || 10) || "hex" === t) { n = ""; for (var i = 0, a = 0, o = 0; o < this.length; o++) { var s = this.words[o], u = (16777215 & (s << i | a)).toString(16); n = 0 !== (a = s >>> 24 - i & 16777215) || o !== this.length - 1 ? c[6 - u.length] + u + n : u + n, (i += 2) >= 26 && (i -= 26, o--) } for (0 !== a && (n = a.toString(16) + n); n.length % e != 0;) n = "0" + n; return 0 !== this.negative && (n = "-" + n), n } if (t === (0 | t) && t >= 2 && t <= 36) { var h = f[t], d = l[t]; n = ""; var p = this.clone(); for (p.negative = 0; !p.isZero();) { var g = p.modn(d).toString(t); n = (p = p.idivn(d)).isZero() ? g + n : c[h - g.length] + g + n } for (this.isZero() && (n = "0" + n); n.length % e != 0;) n = "0" + n; return 0 !== this.negative && (n = "-" + n), n } r(!1, "Base should be between 2 and 36") }, a.prototype.toNumber = function() { var t = this.words[0]; return 2 === this.length ? t += 67108864 * this.words[1] : 3 === this.length && 1 === this.words[2] ? t += 4503599627370496 + 67108864 * this.words[1] : this.length > 2 && r(!1, "Number can only safely store up to 53 bits"), 0 !== this.negative ? -t : t }, a.prototype.toJSON = function() { return this.toString(16) }, a.prototype.toBuffer = function(t, e) { return r(void 0 !== o), this.toArrayLike(o, t, e) }, a.prototype.toArray = function(t, e) { return this.toArrayLike(Array, t, e) }, a.prototype.toArrayLike = function(t, e, n) { var i = this.byteLength(), a = n || Math.max(1, i); r(i <= a, "byte array longer than desired length"), r(a > 0, "Requested array length <= 0"), this.strip(); var o, s, u = "le" === e, c = new t(a), f = this.clone(); if (u) { for (s = 0; !f.isZero(); s++) o = f.andln(255), f.iushrn(8), c[s] = o; for (; s < a; s++) c[s] = 0 } else { for (s = 0; s < a - i; s++) c[s] = 0; for (s = 0; !f.isZero(); s++) o = f.andln(255), f.iushrn(8), c[a - s - 1] = o } return c }, Math.clz32 ? a.prototype._countBits = function(t) { return 32 - Math.clz32(t) } : a.prototype._countBits = function(t) { var e = t, n = 0; return e >= 4096 && (n += 13, e >>>= 13), e >= 64 && (n += 7, e >>>= 7), e >= 8 && (n += 4, e >>>= 4), e >= 2 && (n += 2, e >>>= 2), n + e }, a.prototype._zeroBits = function(t) { if (0 === t) return 26; var e = t, n = 0; return 0 == (8191 & e) && (n += 13, e >>>= 13), 0 == (127 & e) && (n += 7, e >>>= 7), 0 == (15 & e) && (n += 4, e >>>= 4), 0 == (3 & e) && (n += 2, e >>>= 2), 0 == (1 & e) && n++, n }, a.prototype.bitLength = function() { var t = this.words[this.length - 1], e = this._countBits(t); return 26 * (this.length - 1) + e }, a.prototype.zeroBits = function() { if (this.isZero()) return 0; for (var t = 0, e = 0; e < this.length; e++) { var n = this._zeroBits(this.words[e]); if (t += n, 26 !== n) break } return t }, a.prototype.byteLength = function() { return Math.ceil(this.bitLength() / 8) }, a.prototype.toTwos = function(t) { return 0 !== this.negative ? this.abs().inotn(t).iaddn(1) : this.clone() }, a.prototype.fromTwos = function(t) { return this.testn(t - 1) ? this.notn(t).iaddn(1).ineg() : this.clone() }, a.prototype.isNeg = function() { return 0 !== this.negative }, a.prototype.neg = function() { return this.clone().ineg() }, a.prototype.ineg = function() { return this.isZero() || (this.negative ^= 1), this }, a.prototype.iuor = function(t) { for (; this.length < t.length;) this.words[this.length++] = 0; for (var e = 0; e < t.length; e++) this.words[e] = this.words[e] | t.words[e]; return this.strip() }, a.prototype.ior = function(t) { return r(0 == (this.negative | t.negative)), this.iuor(t) }, a.prototype.or = function(t) { return this.length > t.length ? this.clone().ior(t) : t.clone().ior(this) }, a.prototype.uor = function(t) { return this.length > t.length ? this.clone().iuor(t) : t.clone().iuor(this) }, a.prototype.iuand = function(t) { var e; e = this.length > t.length ? t : this; for (var n = 0; n < e.length; n++) this.words[n] = this.words[n] & t.words[n]; return this.length = e.length, this.strip() }, a.prototype.iand = function(t) { return r(0 == (this.negative | t.negative)), this.iuand(t) }, a.prototype.and = function(t) { return this.length > t.length ? this.clone().iand(t) : t.clone().iand(this) }, a.prototype.uand = function(t) { return this.length > t.length ? this.clone().iuand(t) : t.clone().iuand(this) }, a.prototype.iuxor = function(t) { var e, n; this.length > t.length ? (e = this, n = t) : (e = t, n = this); for (var r = 0; r < n.length; r++) this.words[r] = e.words[r] ^ n.words[r]; if (this !== e) for (; r < e.length; r++) this.words[r] = e.words[r]; return this.length = e.length, this.strip() }, a.prototype.ixor = function(t) { return r(0 == (this.negative | t.negative)), this.iuxor(t) }, a.prototype.xor = function(t) { return this.length > t.length ? this.clone().ixor(t) : t.clone().ixor(this) }, a.prototype.uxor = function(t) { return this.length > t.length ? this.clone().iuxor(t) : t.clone().iuxor(this) }, a.prototype.inotn = function(t) { r("number" == typeof t && t >= 0); var e = 0 | Math.ceil(t / 26), n = t % 26; this._expand(e), n > 0 && e--; for (var i = 0; i < e; i++) this.words[i] = 67108863 & ~this.words[i]; return n > 0 && (this.words[i] = ~this.words[i] & 67108863 >> 26 - n), this.strip() }, a.prototype.notn = function(t) { return this.clone().inotn(t) }, a.prototype.setn = function(t, e) { r("number" == typeof t && t >= 0); var n = t / 26 | 0, i = t % 26; return this._expand(n + 1), this.words[n] = e ? this.words[n] | 1 << i : this.words[n] & ~(1 << i), this.strip() }, a.prototype.iadd = function(t) { var e, n, r; if (0 !== this.negative && 0 === t.negative) return this.negative = 0, e = this.isub(t), this.negative ^= 1, this._normSign(); if (0 === this.negative && 0 !== t.negative) return t.negative = 0, e = this.isub(t), t.negative = 1, e._normSign(); this.length > t.length ? (n = this, r = t) : (n = t, r = this); for (var i = 0, a = 0; a < r.length; a++) e = (0 | n.words[a]) + (0 | r.words[a]) + i, this.words[a] = 67108863 & e, i = e >>> 26; for (; 0 !== i && a < n.length; a++) e = (0 | n.words[a]) + i, this.words[a] = 67108863 & e, i = e >>> 26; if (this.length = n.length, 0 !== i) this.words[this.length] = i, this.length++; else if (n !== this) for (; a < n.length; a++) this.words[a] = n.words[a]; return this }, a.prototype.add = function(t) { var e; return 0 !== t.negative && 0 === this.negative ? (t.negative = 0, e = this.sub(t), t.negative ^= 1, e) : 0 === t.negative && 0 !== this.negative ? (this.negative = 0, e = t.sub(this), this.negative = 1, e) : this.length > t.length ? this.clone().iadd(t) : t.clone().iadd(this) }, a.prototype.isub = function(t) { if (0 !== t.negative) { t.negative = 0; var e = this.iadd(t); return t.negative = 1, e._normSign() } if (0 !== this.negative) return this.negative = 0, this.iadd(t), this.negative = 1, this._normSign(); var n, r, i = this.cmp(t); if (0 === i) return this.negative = 0, this.length = 1, this.words[0] = 0, this; i > 0 ? (n = this, r = t) : (n = t, r = this); for (var a = 0, o = 0; o < r.length; o++) a = (e = (0 | n.words[o]) - (0 | r.words[o]) + a) >> 26, this.words[o] = 67108863 & e; for (; 0 !== a && o < n.length; o++) a = (e = (0 | n.words[o]) + a) >> 26, this.words[o] = 67108863 & e; if (0 === a && o < n.length && n !== this) for (; o < n.length; o++) this.words[o] = n.words[o]; return this.length = Math.max(this.length, o), n !== this && (this.negative = 1), this.strip() }, a.prototype.sub = function(t) { return this.clone().isub(t) }; var d = function(t, e, n) { var r, i, a, o = t.words, s = e.words, u = n.words, c = 0, f = 0 | o[0], l = 8191 & f, h = f >>> 13, d = 0 | o[1], p = 8191 & d, g = d >>> 13, y = 0 | o[2], b = 8191 & y, v = y >>> 13, m = 0 | o[3], _ = 8191 & m, w = m >>> 13, x = 0 | o[4], k = 8191 & x, E = x >>> 13, A = 0 | o[5], S = 8191 & A, M = A >>> 13, T = 0 | o[6], D = 8191 & T, C = T >>> 13, N = 0 | o[7], I = 8191 & N, L = N >>> 13, B = 0 | o[8], O = 8191 & B, R = B >>> 13, P = 0 | o[9], F = 8191 & P, q = P >>> 13, j = 0 | s[0], U = 8191 & j, z = j >>> 13, Y = 0 | s[1], V = 8191 & Y, H = Y >>> 13, G = 0 | s[2], $ = 8191 & G, W = G >>> 13, K = 0 | s[3], X = 8191 & K, Z = K >>> 13, J = 0 | s[4], Q = 8191 & J, tt = J >>> 13, et = 0 | s[5], nt = 8191 & et, rt = et >>> 13, it = 0 | s[6], at = 8191 & it, ot = it >>> 13, st = 0 | s[7], ut = 8191 & st, ct = st >>> 13, ft = 0 | s[8], lt = 8191 & ft, ht = ft >>> 13, dt = 0 | s[9], pt = 8191 & dt, gt = dt >>> 13; n.negative = t.negative ^ e.negative, n.length = 19; var yt = (c + (r = Math.imul(l, U)) | 0) + ((8191 & (i = (i = Math.imul(l, z)) + Math.imul(h, U) | 0)) << 13) | 0; c = ((a = Math.imul(h, z)) + (i >>> 13) | 0) + (yt >>> 26) | 0, yt &= 67108863, r = Math.imul(p, U), i = (i = Math.imul(p, z)) + Math.imul(g, U) | 0, a = Math.imul(g, z); var bt = (c + (r = r + Math.imul(l, V) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, H) | 0) + Math.imul(h, V) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, H) | 0) + (i >>> 13) | 0) + (bt >>> 26) | 0, bt &= 67108863, r = Math.imul(b, U), i = (i = Math.imul(b, z)) + Math.imul(v, U) | 0, a = Math.imul(v, z), r = r + Math.imul(p, V) | 0, i = (i = i + Math.imul(p, H) | 0) + Math.imul(g, V) | 0, a = a + Math.imul(g, H) | 0; var vt = (c + (r = r + Math.imul(l, $) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, W) | 0) + Math.imul(h, $) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, W) | 0) + (i >>> 13) | 0) + (vt >>> 26) | 0, vt &= 67108863, r = Math.imul(_, U), i = (i = Math.imul(_, z)) + Math.imul(w, U) | 0, a = Math.imul(w, z), r = r + Math.imul(b, V) | 0, i = (i = i + Math.imul(b, H) | 0) + Math.imul(v, V) | 0, a = a + Math.imul(v, H) | 0, r = r + Math.imul(p, $) | 0, i = (i = i + Math.imul(p, W) | 0) + Math.imul(g, $) | 0, a = a + Math.imul(g, W) | 0; var mt = (c + (r = r + Math.imul(l, X) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, Z) | 0) + Math.imul(h, X) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, Z) | 0) + (i >>> 13) | 0) + (mt >>> 26) | 0, mt &= 67108863, r = Math.imul(k, U), i = (i = Math.imul(k, z)) + Math.imul(E, U) | 0, a = Math.imul(E, z), r = r + Math.imul(_, V) | 0, i = (i = i + Math.imul(_, H) | 0) + Math.imul(w, V) | 0, a = a + Math.imul(w, H) | 0, r = r + Math.imul(b, $) | 0, i = (i = i + Math.imul(b, W) | 0) + Math.imul(v, $) | 0, a = a + Math.imul(v, W) | 0, r = r + Math.imul(p, X) | 0, i = (i = i + Math.imul(p, Z) | 0) + Math.imul(g, X) | 0, a = a + Math.imul(g, Z) | 0; var _t = (c + (r = r + Math.imul(l, Q) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, tt) | 0) + Math.imul(h, Q) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, tt) | 0) + (i >>> 13) | 0) + (_t >>> 26) | 0, _t &= 67108863, r = Math.imul(S, U), i = (i = Math.imul(S, z)) + Math.imul(M, U) | 0, a = Math.imul(M, z), r = r + Math.imul(k, V) | 0, i = (i = i + Math.imul(k, H) | 0) + Math.imul(E, V) | 0, a = a + Math.imul(E, H) | 0, r = r + Math.imul(_, $) | 0, i = (i = i + Math.imul(_, W) | 0) + Math.imul(w, $) | 0, a = a + Math.imul(w, W) | 0, r = r + Math.imul(b, X) | 0, i = (i = i + Math.imul(b, Z) | 0) + Math.imul(v, X) | 0, a = a + Math.imul(v, Z) | 0, r = r + Math.imul(p, Q) | 0, i = (i = i + Math.imul(p, tt) | 0) + Math.imul(g, Q) | 0, a = a + Math.imul(g, tt) | 0; var wt = (c + (r = r + Math.imul(l, nt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, rt) | 0) + Math.imul(h, nt) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, rt) | 0) + (i >>> 13) | 0) + (wt >>> 26) | 0, wt &= 67108863, r = Math.imul(D, U), i = (i = Math.imul(D, z)) + Math.imul(C, U) | 0, a = Math.imul(C, z), r = r + Math.imul(S, V) | 0, i = (i = i + Math.imul(S, H) | 0) + Math.imul(M, V) | 0, a = a + Math.imul(M, H) | 0, r = r + Math.imul(k, $) | 0, i = (i = i + Math.imul(k, W) | 0) + Math.imul(E, $) | 0, a = a + Math.imul(E, W) | 0, r = r + Math.imul(_, X) | 0, i = (i = i + Math.imul(_, Z) | 0) + Math.imul(w, X) | 0, a = a + Math.imul(w, Z) | 0, r = r + Math.imul(b, Q) | 0, i = (i = i + Math.imul(b, tt) | 0) + Math.imul(v, Q) | 0, a = a + Math.imul(v, tt) | 0, r = r + Math.imul(p, nt) | 0, i = (i = i + Math.imul(p, rt) | 0) + Math.imul(g, nt) | 0, a = a + Math.imul(g, rt) | 0; var xt = (c + (r = r + Math.imul(l, at) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, ot) | 0) + Math.imul(h, at) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, ot) | 0) + (i >>> 13) | 0) + (xt >>> 26) | 0, xt &= 67108863, r = Math.imul(I, U), i = (i = Math.imul(I, z)) + Math.imul(L, U) | 0, a = Math.imul(L, z), r = r + Math.imul(D, V) | 0, i = (i = i + Math.imul(D, H) | 0) + Math.imul(C, V) | 0, a = a + Math.imul(C, H) | 0, r = r + Math.imul(S, $) | 0, i = (i = i + Math.imul(S, W) | 0) + Math.imul(M, $) | 0, a = a + Math.imul(M, W) | 0, r = r + Math.imul(k, X) | 0, i = (i = i + Math.imul(k, Z) | 0) + Math.imul(E, X) | 0, a = a + Math.imul(E, Z) | 0, r = r + Math.imul(_, Q) | 0, i = (i = i + Math.imul(_, tt) | 0) + Math.imul(w, Q) | 0, a = a + Math.imul(w, tt) | 0, r = r + Math.imul(b, nt) | 0, i = (i = i + Math.imul(b, rt) | 0) + Math.imul(v, nt) | 0, a = a + Math.imul(v, rt) | 0, r = r + Math.imul(p, at) | 0, i = (i = i + Math.imul(p, ot) | 0) + Math.imul(g, at) | 0, a = a + Math.imul(g, ot) | 0; var kt = (c + (r = r + Math.imul(l, ut) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, ct) | 0) + Math.imul(h, ut) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, ct) | 0) + (i >>> 13) | 0) + (kt >>> 26) | 0, kt &= 67108863, r = Math.imul(O, U), i = (i = Math.imul(O, z)) + Math.imul(R, U) | 0, a = Math.imul(R, z), r = r + Math.imul(I, V) | 0, i = (i = i + Math.imul(I, H) | 0) + Math.imul(L, V) | 0, a = a + Math.imul(L, H) | 0, r = r + Math.imul(D, $) | 0, i = (i = i + Math.imul(D, W) | 0) + Math.imul(C, $) | 0, a = a + Math.imul(C, W) | 0, r = r + Math.imul(S, X) | 0, i = (i = i + Math.imul(S, Z) | 0) + Math.imul(M, X) | 0, a = a + Math.imul(M, Z) | 0, r = r + Math.imul(k, Q) | 0, i = (i = i + Math.imul(k, tt) | 0) + Math.imul(E, Q) | 0, a = a + Math.imul(E, tt) | 0, r = r + Math.imul(_, nt) | 0, i = (i = i + Math.imul(_, rt) | 0) + Math.imul(w, nt) | 0, a = a + Math.imul(w, rt) | 0, r = r + Math.imul(b, at) | 0, i = (i = i + Math.imul(b, ot) | 0) + Math.imul(v, at) | 0, a = a + Math.imul(v, ot) | 0, r = r + Math.imul(p, ut) | 0, i = (i = i + Math.imul(p, ct) | 0) + Math.imul(g, ut) | 0, a = a + Math.imul(g, ct) | 0; var Et = (c + (r = r + Math.imul(l, lt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, ht) | 0) + Math.imul(h, lt) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, ht) | 0) + (i >>> 13) | 0) + (Et >>> 26) | 0, Et &= 67108863, r = Math.imul(F, U), i = (i = Math.imul(F, z)) + Math.imul(q, U) | 0, a = Math.imul(q, z), r = r + Math.imul(O, V) | 0, i = (i = i + Math.imul(O, H) | 0) + Math.imul(R, V) | 0, a = a + Math.imul(R, H) | 0, r = r + Math.imul(I, $) | 0, i = (i = i + Math.imul(I, W) | 0) + Math.imul(L, $) | 0, a = a + Math.imul(L, W) | 0, r = r + Math.imul(D, X) | 0, i = (i = i + Math.imul(D, Z) | 0) + Math.imul(C, X) | 0, a = a + Math.imul(C, Z) | 0, r = r + Math.imul(S, Q) | 0, i = (i = i + Math.imul(S, tt) | 0) + Math.imul(M, Q) | 0, a = a + Math.imul(M, tt) | 0, r = r + Math.imul(k, nt) | 0, i = (i = i + Math.imul(k, rt) | 0) + Math.imul(E, nt) | 0, a = a + Math.imul(E, rt) | 0, r = r + Math.imul(_, at) | 0, i = (i = i + Math.imul(_, ot) | 0) + Math.imul(w, at) | 0, a = a + Math.imul(w, ot) | 0, r = r + Math.imul(b, ut) | 0, i = (i = i + Math.imul(b, ct) | 0) + Math.imul(v, ut) | 0, a = a + Math.imul(v, ct) | 0, r = r + Math.imul(p, lt) | 0, i = (i = i + Math.imul(p, ht) | 0) + Math.imul(g, lt) | 0, a = a + Math.imul(g, ht) | 0; var At = (c + (r = r + Math.imul(l, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(l, gt) | 0) + Math.imul(h, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(h, gt) | 0) + (i >>> 13) | 0) + (At >>> 26) | 0, At &= 67108863, r = Math.imul(F, V), i = (i = Math.imul(F, H)) + Math.imul(q, V) | 0, a = Math.imul(q, H), r = r + Math.imul(O, $) | 0, i = (i = i + Math.imul(O, W) | 0) + Math.imul(R, $) | 0, a = a + Math.imul(R, W) | 0, r = r + Math.imul(I, X) | 0, i = (i = i + Math.imul(I, Z) | 0) + Math.imul(L, X) | 0, a = a + Math.imul(L, Z) | 0, r = r + Math.imul(D, Q) | 0, i = (i = i + Math.imul(D, tt) | 0) + Math.imul(C, Q) | 0, a = a + Math.imul(C, tt) | 0, r = r + Math.imul(S, nt) | 0, i = (i = i + Math.imul(S, rt) | 0) + Math.imul(M, nt) | 0, a = a + Math.imul(M, rt) | 0, r = r + Math.imul(k, at) | 0, i = (i = i + Math.imul(k, ot) | 0) + Math.imul(E, at) | 0, a = a + Math.imul(E, ot) | 0, r = r + Math.imul(_, ut) | 0, i = (i = i + Math.imul(_, ct) | 0) + Math.imul(w, ut) | 0, a = a + Math.imul(w, ct) | 0, r = r + Math.imul(b, lt) | 0, i = (i = i + Math.imul(b, ht) | 0) + Math.imul(v, lt) | 0, a = a + Math.imul(v, ht) | 0; var St = (c + (r = r + Math.imul(p, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(p, gt) | 0) + Math.imul(g, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(g, gt) | 0) + (i >>> 13) | 0) + (St >>> 26) | 0, St &= 67108863, r = Math.imul(F, $), i = (i = Math.imul(F, W)) + Math.imul(q, $) | 0, a = Math.imul(q, W), r = r + Math.imul(O, X) | 0, i = (i = i + Math.imul(O, Z) | 0) + Math.imul(R, X) | 0, a = a + Math.imul(R, Z) | 0, r = r + Math.imul(I, Q) | 0, i = (i = i + Math.imul(I, tt) | 0) + Math.imul(L, Q) | 0, a = a + Math.imul(L, tt) | 0, r = r + Math.imul(D, nt) | 0, i = (i = i + Math.imul(D, rt) | 0) + Math.imul(C, nt) | 0, a = a + Math.imul(C, rt) | 0, r = r + Math.imul(S, at) | 0, i = (i = i + Math.imul(S, ot) | 0) + Math.imul(M, at) | 0, a = a + Math.imul(M, ot) | 0, r = r + Math.imul(k, ut) | 0, i = (i = i + Math.imul(k, ct) | 0) + Math.imul(E, ut) | 0, a = a + Math.imul(E, ct) | 0, r = r + Math.imul(_, lt) | 0, i = (i = i + Math.imul(_, ht) | 0) + Math.imul(w, lt) | 0, a = a + Math.imul(w, ht) | 0; var Mt = (c + (r = r + Math.imul(b, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(b, gt) | 0) + Math.imul(v, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(v, gt) | 0) + (i >>> 13) | 0) + (Mt >>> 26) | 0, Mt &= 67108863, r = Math.imul(F, X), i = (i = Math.imul(F, Z)) + Math.imul(q, X) | 0, a = Math.imul(q, Z), r = r + Math.imul(O, Q) | 0, i = (i = i + Math.imul(O, tt) | 0) + Math.imul(R, Q) | 0, a = a + Math.imul(R, tt) | 0, r = r + Math.imul(I, nt) | 0, i = (i = i + Math.imul(I, rt) | 0) + Math.imul(L, nt) | 0, a = a + Math.imul(L, rt) | 0, r = r + Math.imul(D, at) | 0, i = (i = i + Math.imul(D, ot) | 0) + Math.imul(C, at) | 0, a = a + Math.imul(C, ot) | 0, r = r + Math.imul(S, ut) | 0, i = (i = i + Math.imul(S, ct) | 0) + Math.imul(M, ut) | 0, a = a + Math.imul(M, ct) | 0, r = r + Math.imul(k, lt) | 0, i = (i = i + Math.imul(k, ht) | 0) + Math.imul(E, lt) | 0, a = a + Math.imul(E, ht) | 0; var Tt = (c + (r = r + Math.imul(_, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(_, gt) | 0) + Math.imul(w, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(w, gt) | 0) + (i >>> 13) | 0) + (Tt >>> 26) | 0, Tt &= 67108863, r = Math.imul(F, Q), i = (i = Math.imul(F, tt)) + Math.imul(q, Q) | 0, a = Math.imul(q, tt), r = r + Math.imul(O, nt) | 0, i = (i = i + Math.imul(O, rt) | 0) + Math.imul(R, nt) | 0, a = a + Math.imul(R, rt) | 0, r = r + Math.imul(I, at) | 0, i = (i = i + Math.imul(I, ot) | 0) + Math.imul(L, at) | 0, a = a + Math.imul(L, ot) | 0, r = r + Math.imul(D, ut) | 0, i = (i = i + Math.imul(D, ct) | 0) + Math.imul(C, ut) | 0, a = a + Math.imul(C, ct) | 0, r = r + Math.imul(S, lt) | 0, i = (i = i + Math.imul(S, ht) | 0) + Math.imul(M, lt) | 0, a = a + Math.imul(M, ht) | 0; var Dt = (c + (r = r + Math.imul(k, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(k, gt) | 0) + Math.imul(E, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(E, gt) | 0) + (i >>> 13) | 0) + (Dt >>> 26) | 0, Dt &= 67108863, r = Math.imul(F, nt), i = (i = Math.imul(F, rt)) + Math.imul(q, nt) | 0, a = Math.imul(q, rt), r = r + Math.imul(O, at) | 0, i = (i = i + Math.imul(O, ot) | 0) + Math.imul(R, at) | 0, a = a + Math.imul(R, ot) | 0, r = r + Math.imul(I, ut) | 0, i = (i = i + Math.imul(I, ct) | 0) + Math.imul(L, ut) | 0, a = a + Math.imul(L, ct) | 0, r = r + Math.imul(D, lt) | 0, i = (i = i + Math.imul(D, ht) | 0) + Math.imul(C, lt) | 0, a = a + Math.imul(C, ht) | 0; var Ct = (c + (r = r + Math.imul(S, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(S, gt) | 0) + Math.imul(M, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(M, gt) | 0) + (i >>> 13) | 0) + (Ct >>> 26) | 0, Ct &= 67108863, r = Math.imul(F, at), i = (i = Math.imul(F, ot)) + Math.imul(q, at) | 0, a = Math.imul(q, ot), r = r + Math.imul(O, ut) | 0, i = (i = i + Math.imul(O, ct) | 0) + Math.imul(R, ut) | 0, a = a + Math.imul(R, ct) | 0, r = r + Math.imul(I, lt) | 0, i = (i = i + Math.imul(I, ht) | 0) + Math.imul(L, lt) | 0, a = a + Math.imul(L, ht) | 0; var Nt = (c + (r = r + Math.imul(D, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(D, gt) | 0) + Math.imul(C, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(C, gt) | 0) + (i >>> 13) | 0) + (Nt >>> 26) | 0, Nt &= 67108863, r = Math.imul(F, ut), i = (i = Math.imul(F, ct)) + Math.imul(q, ut) | 0, a = Math.imul(q, ct), r = r + Math.imul(O, lt) | 0, i = (i = i + Math.imul(O, ht) | 0) + Math.imul(R, lt) | 0, a = a + Math.imul(R, ht) | 0; var It = (c + (r = r + Math.imul(I, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(I, gt) | 0) + Math.imul(L, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(L, gt) | 0) + (i >>> 13) | 0) + (It >>> 26) | 0, It &= 67108863, r = Math.imul(F, lt), i = (i = Math.imul(F, ht)) + Math.imul(q, lt) | 0, a = Math.imul(q, ht); var Lt = (c + (r = r + Math.imul(O, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(O, gt) | 0) + Math.imul(R, pt) | 0)) << 13) | 0; c = ((a = a + Math.imul(R, gt) | 0) + (i >>> 13) | 0) + (Lt >>> 26) | 0, Lt &= 67108863; var Bt = (c + (r = Math.imul(F, pt)) | 0) + ((8191 & (i = (i = Math.imul(F, gt)) + Math.imul(q, pt) | 0)) << 13) | 0; return c = ((a = Math.imul(q, gt)) + (i >>> 13) | 0) + (Bt >>> 26) | 0, Bt &= 67108863, u[0] = yt, u[1] = bt, u[2] = vt, u[3] = mt, u[4] = _t, u[5] = wt, u[6] = xt, u[7] = kt, u[8] = Et, u[9] = At, u[10] = St, u[11] = Mt, u[12] = Tt, u[13] = Dt, u[14] = Ct, u[15] = Nt, u[16] = It, u[17] = Lt, u[18] = Bt, 0 !== c && (u[19] = c, n.length++), n }; function p(t, e, n) { return (new g).mulp(t, e, n) } function g(t, e) { this.x = t, this.y = e } Math.imul || (d = h), a.prototype.mulTo = function(t, e) { var n = this.length + t.length; return 10 === this.length && 10 === t.length ? d(this, t, e) : n < 63 ? h(this, t, e) : n < 1024 ? function(t, e, n) { n.negative = e.negative ^ t.negative, n.length = t.length + e.length; for (var r = 0, i = 0, a = 0; a < n.length - 1; a++) { var o = i; i = 0; for (var s = 67108863 & r, u = Math.min(a, e.length - 1), c = Math.max(0, a - t.length + 1); c <= u; c++) { var f = a - c, l = (0 | t.words[f]) * (0 | e.words[c]), h = 67108863 & l; s = 67108863 & (h = h + s | 0), i += (o = (o = o + (l / 67108864 | 0) | 0) + (h >>> 26) | 0) >>> 26, o &= 67108863 } n.words[a] = s, r = o, o = i } return 0 !== r ? n.words[a] = r : n.length--, n.strip() }(this, t, e) : p(this, t, e) }, g.prototype.makeRBT = function(t) { for (var e = new Array(t), n = a.prototype._countBits(t) - 1, r = 0; r < t; r++) e[r] = this.revBin(r, n, t); return e }, g.prototype.revBin = function(t, e, n) { if (0 === t || t === n - 1) return t; for (var r = 0, i = 0; i < e; i++) r |= (1 & t) << e - i - 1, t >>= 1; return r }, g.prototype.permute = function(t, e, n, r, i, a) { for (var o = 0; o < a; o++) r[o] = e[t[o]], i[o] = n[t[o]] }, g.prototype.transform = function(t, e, n, r, i, a) { this.permute(a, t, e, n, r, i); for (var o = 1; o < i; o <<= 1) for (var s = o << 1, u = Math.cos(2 * Math.PI / s), c = Math.sin(2 * Math.PI / s), f = 0; f < i; f += s) for (var l = u, h = c, d = 0; d < o; d++) { var p = n[f + d], g = r[f + d], y = n[f + d + o], b = r[f + d + o], v = l * y - h * b; b = l * b + h * y, y = v, n[f + d] = p + y, r[f + d] = g + b, n[f + d + o] = p - y, r[f + d + o] = g - b, d !== s && (v = u * l - c * h, h = u * h + c * l, l = v) } }, g.prototype.guessLen13b = function(t, e) { var n = 1 | Math.max(e, t), r = 1 & n, i = 0; for (n = n / 2 | 0; n; n >>>= 1) i++; return 1 << i + 1 + r }, g.prototype.conjugate = function(t, e, n) { if (!(n <= 1)) for (var r = 0; r < n / 2; r++) { var i = t[r]; t[r] = t[n - r - 1], t[n - r - 1] = i, i = e[r], e[r] = -e[n - r - 1], e[n - r - 1] = -i } }, g.prototype.normalize13b = function(t, e) { for (var n = 0, r = 0; r < e / 2; r++) { var i = 8192 * Math.round(t[2 * r + 1] / e) + Math.round(t[2 * r] / e) + n; t[r] = 67108863 & i, n = i < 67108864 ? 0 : i / 67108864 | 0 } return t }, g.prototype.convert13b = function(t, e, n, i) { for (var a = 0, o = 0; o < e; o++) a += 0 | t[o], n[2 * o] = 8191 & a, a >>>= 13, n[2 * o + 1] = 8191 & a, a >>>= 13; for (o = 2 * e; o < i; ++o) n[o] = 0; r(0 === a), r(0 == (-8192 & a)) }, g.prototype.stub = function(t) { for (var e = new Array(t), n = 0; n < t; n++) e[n] = 0; return e }, g.prototype.mulp = function(t, e, n) { var r = 2 * this.guessLen13b(t.length, e.length), i = this.makeRBT(r), a = this.stub(r), o = new Array(r), s = new Array(r), u = new Array(r), c = new Array(r), f = new Array(r), l = new Array(r), h = n.words; h.length = r, this.convert13b(t.words, t.length, o, r), this.convert13b(e.words, e.length, c, r), this.transform(o, a, s, u, r, i), this.transform(c, a, f, l, r, i); for (var d = 0; d < r; d++) { var p = s[d] * f[d] - u[d] * l[d]; u[d] = s[d] * l[d] + u[d] * f[d], s[d] = p } return this.conjugate(s, u, r), this.transform(s, u, h, a, r, i), this.conjugate(h, a, r), this.normalize13b(h, r), n.negative = t.negative ^ e.negative, n.length = t.length + e.length, n.strip() }, a.prototype.mul = function(t) { var e = new a(null); return e.words = new Array(this.length + t.length), this.mulTo(t, e) }, a.prototype.mulf = function(t) { var e = new a(null); return e.words = new Array(this.length + t.length), p(this, t, e) }, a.prototype.imul = function(t) { return this.clone().mulTo(t, this) }, a.prototype.imuln = function(t) { r("number" == typeof t), r(t < 67108864); for (var e = 0, n = 0; n < this.length; n++) { var i = (0 | this.words[n]) * t, a = (67108863 & i) + (67108863 & e); e >>= 26, e += i / 67108864 | 0, e += a >>> 26, this.words[n] = 67108863 & a } return 0 !== e && (this.words[n] = e, this.length++), this }, a.prototype.muln = function(t) { return this.clone().imuln(t) }, a.prototype.sqr = function() { return this.mul(this) }, a.prototype.isqr = function() { return this.imul(this.clone()) }, a.prototype.pow = function(t) { var e = function(t) { for (var e = new Array(t.bitLength()), n = 0; n < e.length; n++) { var r = n / 26 | 0, i = n % 26; e[n] = (t.words[r] & 1 << i) >>> i } return e }(t); if (0 === e.length) return new a(1); for (var n = this, r = 0; r < e.length && 0 === e[r]; r++, n = n.sqr()); if (++r < e.length) for (var i = n.sqr(); r < e.length; r++, i = i.sqr()) 0 !== e[r] && (n = n.mul(i)); return n }, a.prototype.iushln = function(t) { r("number" == typeof t && t >= 0); var e, n = t % 26, i = (t - n) / 26, a = 67108863 >>> 26 - n << 26 - n; if (0 !== n) { var o = 0; for (e = 0; e < this.length; e++) { var s = this.words[e] & a, u = (0 | this.words[e]) - s << n; this.words[e] = u | o, o = s >>> 26 - n } o && (this.words[e] = o, this.length++) } if (0 !== i) { for (e = this.length - 1; e >= 0; e--) this.words[e + i] = this.words[e]; for (e = 0; e < i; e++) this.words[e] = 0; this.length += i } return this.strip() }, a.prototype.ishln = function(t) { return r(0 === this.negative), this.iushln(t) }, a.prototype.iushrn = function(t, e, n) { var i; r("number" == typeof t && t >= 0), i = e ? (e - e % 26) / 26 : 0; var a = t % 26, o = Math.min((t - a) / 26, this.length), s = 67108863 ^ 67108863 >>> a << a, u = n; if (i -= o, i = Math.max(0, i), u) { for (var c = 0; c < o; c++) u.words[c] = this.words[c]; u.length = o } if (0 === o); else if (this.length > o) for (this.length -= o, c = 0; c < this.length; c++) this.words[c] = this.words[c + o]; else this.words[0] = 0, this.length = 1; var f = 0; for (c = this.length - 1; c >= 0 && (0 !== f || c >= i); c--) { var l = 0 | this.words[c]; this.words[c] = f << 26 - a | l >>> a, f = l & s } return u && 0 !== f && (u.words[u.length++] = f), 0 === this.length && (this.words[0] = 0, this.length = 1), this.strip() }, a.prototype.ishrn = function(t, e, n) { return r(0 === this.negative), this.iushrn(t, e, n) }, a.prototype.shln = function(t) { return this.clone().ishln(t) }, a.prototype.ushln = function(t) { return this.clone().iushln(t) }, a.prototype.shrn = function(t) { return this.clone().ishrn(t) }, a.prototype.ushrn = function(t) { return this.clone().iushrn(t) }, a.prototype.testn = function(t) { r("number" == typeof t && t >= 0); var e = t % 26, n = (t - e) / 26, i = 1 << e; return !(this.length <= n) && !!(this.words[n] & i) }, a.prototype.imaskn = function(t) { r("number" == typeof t && t >= 0); var e = t % 26, n = (t - e) / 26; if (r(0 === this.negative, "imaskn works only with positive numbers"), this.length <= n) return this; if (0 !== e && n++, this.length = Math.min(n, this.length), 0 !== e) { var i = 67108863 ^ 67108863 >>> e << e; this.words[this.length - 1] &= i } return this.strip() }, a.prototype.maskn = function(t) { return this.clone().imaskn(t) }, a.prototype.iaddn = function(t) { return r("number" == typeof t), r(t < 67108864), t < 0 ? this.isubn(-t) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) < t ? (this.words[0] = t - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(t), this.negative = 1, this) : this._iaddn(t) }, a.prototype._iaddn = function(t) { this.words[0] += t; for (var e = 0; e < this.length && this.words[e] >= 67108864; e++) this.words[e] -= 67108864, e === this.length - 1 ? this.words[e + 1] = 1 : this.words[e + 1]++; return this.length = Math.max(this.length, e + 1), this }, a.prototype.isubn = function(t) { if (r("number" == typeof t), r(t < 67108864), t < 0) return this.iaddn(-t); if (0 !== this.negative) return this.negative = 0, this.iaddn(t), this.negative = 1, this; if (this.words[0] -= t, 1 === this.length && this.words[0] < 0) this.words[0] = -this.words[0], this.negative = 1; else for (var e = 0; e < this.length && this.words[e] < 0; e++) this.words[e] += 67108864, this.words[e + 1] -= 1; return this.strip() }, a.prototype.addn = function(t) { return this.clone().iaddn(t) }, a.prototype.subn = function(t) { return this.clone().isubn(t) }, a.prototype.iabs = function() { return this.negative = 0, this }, a.prototype.abs = function() { return this.clone().iabs() }, a.prototype._ishlnsubmul = function(t, e, n) { var i, a, o = t.length + n; this._expand(o); var s = 0; for (i = 0; i < t.length; i++) { a = (0 | this.words[i + n]) + s; var u = (0 | t.words[i]) * e; s = ((a -= 67108863 & u) >> 26) - (u / 67108864 | 0), this.words[i + n] = 67108863 & a } for (; i < this.length - n; i++) s = (a = (0 | this.words[i + n]) + s) >> 26, this.words[i + n] = 67108863 & a; if (0 === s) return this.strip(); for (r(-1 === s), s = 0, i = 0; i < this.length; i++) s = (a = -(0 | this.words[i]) + s) >> 26, this.words[i] = 67108863 & a; return this.negative = 1, this.strip() }, a.prototype._wordDiv = function(t, e) { var n = (this.length, t.length), r = this.clone(), i = t, o = 0 | i.words[i.length - 1]; 0 !== (n = 26 - this._countBits(o)) && (i = i.ushln(n), r.iushln(n), o = 0 | i.words[i.length - 1]); var s, u = r.length - i.length; if ("mod" !== e) { (s = new a(null)).length = u + 1, s.words = new Array(s.length); for (var c = 0; c < s.length; c++) s.words[c] = 0 } var f = r.clone()._ishlnsubmul(i, 1, u); 0 === f.negative && (r = f, s && (s.words[u] = 1)); for (var l = u - 1; l >= 0; l--) { var h = 67108864 * (0 | r.words[i.length + l]) + (0 | r.words[i.length + l - 1]); for (h = Math.min(h / o | 0, 67108863), r._ishlnsubmul(i, h, l); 0 !== r.negative;) h--, r.negative = 0, r._ishlnsubmul(i, 1, l), r.isZero() || (r.negative ^= 1); s && (s.words[l] = h) } return s && s.strip(), r.strip(), "div" !== e && 0 !== n && r.iushrn(n), { div: s || null, mod: r } }, a.prototype.divmod = function(t, e, n) { return r(!t.isZero()), this.isZero() ? { div: new a(0), mod: new a(0) } : 0 !== this.negative && 0 === t.negative ? (s = this.neg().divmod(t, e), "mod" !== e && (i = s.div.neg()), "div" !== e && (o = s.mod.neg(), n && 0 !== o.negative && o.iadd(t)), { div: i, mod: o }) : 0 === this.negative && 0 !== t.negative ? (s = this.divmod(t.neg(), e), "mod" !== e && (i = s.div.neg()), { div: i, mod: s.mod }) : 0 != (this.negative & t.negative) ? (s = this.neg().divmod(t.neg(), e), "div" !== e && (o = s.mod.neg(), n && 0 !== o.negative && o.isub(t)), { div: s.div, mod: o }) : t.length > this.length || this.cmp(t) < 0 ? { div: new a(0), mod: this } : 1 === t.length ? "div" === e ? { div: this.divn(t.words[0]), mod: null } : "mod" === e ? { div: null, mod: new a(this.modn(t.words[0])) } : { div: this.divn(t.words[0]), mod: new a(this.modn(t.words[0])) } : this._wordDiv(t, e); var i, o, s }, a.prototype.div = function(t) { return this.divmod(t, "div", !1).div }, a.prototype.mod = function(t) { return this.divmod(t, "mod", !1).mod }, a.prototype.umod = function(t) { return this.divmod(t, "mod", !0).mod }, a.prototype.divRound = function(t) { var e = this.divmod(t); if (e.mod.isZero()) return e.div; var n = 0 !== e.div.negative ? e.mod.isub(t) : e.mod, r = t.ushrn(1), i = t.andln(1), a = n.cmp(r); return a < 0 || 1 === i && 0 === a ? e.div : 0 !== e.div.negative ? e.div.isubn(1) : e.div.iaddn(1) }, a.prototype.modn = function(t) { r(t <= 67108863); for (var e = (1 << 26) % t, n = 0, i = this.length - 1; i >= 0; i--) n = (e * n + (0 | this.words[i])) % t; return n }, a.prototype.idivn = function(t) { r(t <= 67108863); for (var e = 0, n = this.length - 1; n >= 0; n--) { var i = (0 | this.words[n]) + 67108864 * e; this.words[n] = i / t | 0, e = i % t } return this.strip() }, a.prototype.divn = function(t) { return this.clone().idivn(t) }, a.prototype.egcd = function(t) { r(0 === t.negative), r(!t.isZero()); var e = this, n = t.clone(); e = 0 !== e.negative ? e.umod(t) : e.clone(); for (var i = new a(1), o = new a(0), s = new a(0), u = new a(1), c = 0; e.isEven() && n.isEven();) e.iushrn(1), n.iushrn(1), ++c; for (var f = n.clone(), l = e.clone(); !e.isZero();) { for (var h = 0, d = 1; 0 == (e.words[0] & d) && h < 26; ++h, d <<= 1); if (h > 0) for (e.iushrn(h); h-- > 0;)(i.isOdd() || o.isOdd()) && (i.iadd(f), o.isub(l)), i.iushrn(1), o.iushrn(1); for (var p = 0, g = 1; 0 == (n.words[0] & g) && p < 26; ++p, g <<= 1); if (p > 0) for (n.iushrn(p); p-- > 0;)(s.isOdd() || u.isOdd()) && (s.iadd(f), u.isub(l)), s.iushrn(1), u.iushrn(1); e.cmp(n) >= 0 ? (e.isub(n), i.isub(s), o.isub(u)) : (n.isub(e), s.isub(i), u.isub(o)) } return { a: s, b: u, gcd: n.iushln(c) } }, a.prototype._invmp = function(t) { r(0 === t.negative), r(!t.isZero()); var e = this, n = t.clone(); e = 0 !== e.negative ? e.umod(t) : e.clone(); for (var i, o = new a(1), s = new a(0), u = n.clone(); e.cmpn(1) > 0 && n.cmpn(1) > 0;) { for (var c = 0, f = 1; 0 == (e.words[0] & f) && c < 26; ++c, f <<= 1); if (c > 0) for (e.iushrn(c); c-- > 0;) o.isOdd() && o.iadd(u), o.iushrn(1); for (var l = 0, h = 1; 0 == (n.words[0] & h) && l < 26; ++l, h <<= 1); if (l > 0) for (n.iushrn(l); l-- > 0;) s.isOdd() && s.iadd(u), s.iushrn(1); e.cmp(n) >= 0 ? (e.isub(n), o.isub(s)) : (n.isub(e), s.isub(o)) } return (i = 0 === e.cmpn(1) ? o : s).cmpn(0) < 0 && i.iadd(t), i }, a.prototype.gcd = function(t) { if (this.isZero()) return t.abs(); if (t.isZero()) return this.abs(); var e = this.clone(), n = t.clone(); e.negative = 0, n.negative = 0; for (var r = 0; e.isEven() && n.isEven(); r++) e.iushrn(1), n.iushrn(1); for (;;) { for (; e.isEven();) e.iushrn(1); for (; n.isEven();) n.iushrn(1); var i = e.cmp(n); if (i < 0) { var a = e; e = n, n = a } else if (0 === i || 0 === n.cmpn(1)) break; e.isub(n) } return n.iushln(r) }, a.prototype.invm = function(t) { return this.egcd(t).a.umod(t) }, a.prototype.isEven = function() { return 0 == (1 & this.words[0]) }, a.prototype.isOdd = function() { return 1 == (1 & this.words[0]) }, a.prototype.andln = function(t) { return this.words[0] & t }, a.prototype.bincn = function(t) { r("number" == typeof t); var e = t % 26, n = (t - e) / 26, i = 1 << e; if (this.length <= n) return this._expand(n + 1), this.words[n] |= i, this; for (var a = i, o = n; 0 !== a && o < this.length; o++) { var s = 0 | this.words[o]; a = (s += a) >>> 26, s &= 67108863, this.words[o] = s } return 0 !== a && (this.words[o] = a, this.length++), this }, a.prototype.isZero = function() { return 1 === this.length && 0 === this.words[0] }, a.prototype.cmpn = function(t) { var e, n = t < 0; if (0 !== this.negative && !n) return -1; if (0 === this.negative && n) return 1; if (this.strip(), this.length > 1) e = 1; else { n && (t = -t), r(t <= 67108863, "Number is too big"); var i = 0 | this.words[0]; e = i === t ? 0 : i < t ? -1 : 1 } return 0 !== this.negative ? 0 | -e : e }, a.prototype.cmp = function(t) { if (0 !== this.negative && 0 === t.negative) return -1; if (0 === this.negative && 0 !== t.negative) return 1; var e = this.ucmp(t); return 0 !== this.negative ? 0 | -e : e }, a.prototype.ucmp = function(t) { if (this.length > t.length) return 1; if (this.length < t.length) return -1; for (var e = 0, n = this.length - 1; n >= 0; n--) { var r = 0 | this.words[n], i = 0 | t.words[n]; if (r !== i) { r < i ? e = -1 : r > i && (e = 1); break } } return e }, a.prototype.gtn = function(t) { return 1 === this.cmpn(t) }, a.prototype.gt = function(t) { return 1 === this.cmp(t) }, a.prototype.gten = function(t) { return this.cmpn(t) >= 0 }, a.prototype.gte = function(t) { return this.cmp(t) >= 0 }, a.prototype.ltn = function(t) { return -1 === this.cmpn(t) }, a.prototype.lt = function(t) { return -1 === this.cmp(t) }, a.prototype.lten = function(t) { return this.cmpn(t) <= 0 }, a.prototype.lte = function(t) { return this.cmp(t) <= 0 }, a.prototype.eqn = function(t) { return 0 === this.cmpn(t) }, a.prototype.eq = function(t) { return 0 === this.cmp(t) }, a.red = function(t) { return new x(t) }, a.prototype.toRed = function(t) { return r(!this.red, "Already a number in reduction context"), r(0 === this.negative, "red works only with positives"), t.convertTo(this)._forceRed(t) }, a.prototype.fromRed = function() { return r(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this) }, a.prototype._forceRed = function(t) { return this.red = t, this }, a.prototype.forceRed = function(t) { return r(!this.red, "Already a number in reduction context"), this._forceRed(t) }, a.prototype.redAdd = function(t) { return r(this.red, "redAdd works only with red numbers"), this.red.add(this, t) }, a.prototype.redIAdd = function(t) { return r(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, t) }, a.prototype.redSub = function(t) { return r(this.red, "redSub works only with red numbers"), this.red.sub(this, t) }, a.prototype.redISub = function(t) { return r(this.red, "redISub works only with red numbers"), this.red.isub(this, t) }, a.prototype.redShl = function(t) { return r(this.red, "redShl works only with red numbers"), this.red.shl(this, t) }, a.prototype.redMul = function(t) { return r(this.red, "redMul works only with red numbers"), this.red._verify2(this, t), this.red.mul(this, t) }, a.prototype.redIMul = function(t) { return r(this.red, "redMul works only with red numbers"), this.red._verify2(this, t), this.red.imul(this, t) }, a.prototype.redSqr = function() { return r(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this) }, a.prototype.redISqr = function() { return r(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this) }, a.prototype.redSqrt = function() { return r(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this) }, a.prototype.redInvm = function() { return r(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this) }, a.prototype.redNeg = function() { return r(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this) }, a.prototype.redPow = function(t) { return r(this.red && !t.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, t) }; var y = { k256: null, p224: null, p192: null, p25519: null }; function b(t, e) { this.name = t, this.p = new a(e, 16), this.n = this.p.bitLength(), this.k = new a(1).iushln(this.n).isub(this.p), this.tmp = this._tmp() } function v() { b.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f") } function m() { b.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001") } function _() { b.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff") } function w() { b.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed") } function x(t) { if ("string" == typeof t) { var e = a._prime(t); this.m = e.p, this.prime = e } else r(t.gtn(1), "modulus must be greater than 1"), this.m = t, this.prime = null } function k(t) { x.call(this, t), this.shift = this.m.bitLength(), this.shift % 26 != 0 && (this.shift += 26 - this.shift % 26), this.r = new a(1).iushln(this.shift), this.r2 = this.imod(this.r.sqr()), this.rinv = this.r._invmp(this.m), this.minv = this.rinv.mul(this.r).isubn(1).div(this.m), this.minv = this.minv.umod(this.r), this.minv = this.r.sub(this.minv) } b.prototype._tmp = function() { var t = new a(null); return t.words = new Array(Math.ceil(this.n / 13)), t }, b.prototype.ireduce = function(t) { var e, n = t; do { this.split(n, this.tmp), e = (n = (n = this.imulK(n)).iadd(this.tmp)).bitLength() } while (e > this.n); var r = e < this.n ? -1 : n.ucmp(this.p); return 0 === r ? (n.words[0] = 0, n.length = 1) : r > 0 ? n.isub(this.p) : n.strip(), n }, b.prototype.split = function(t, e) { t.iushrn(this.n, 0, e) }, b.prototype.imulK = function(t) { return t.imul(this.k) }, i(v, b), v.prototype.split = function(t, e) { for (var n = Math.min(t.length, 9), r = 0; r < n; r++) e.words[r] = t.words[r]; if (e.length = n, t.length <= 9) return t.words[0] = 0, void(t.length = 1); var i = t.words[9]; for (e.words[e.length++] = 4194303 & i, r = 10; r < t.length; r++) { var a = 0 | t.words[r]; t.words[r - 10] = (4194303 & a) << 4 | i >>> 22, i = a } i >>>= 22, t.words[r - 10] = i, 0 === i && t.length > 10 ? t.length -= 10 : t.length -= 9 }, v.prototype.imulK = function(t) { t.words[t.length] = 0, t.words[t.length + 1] = 0, t.length += 2; for (var e = 0, n = 0; n < t.length; n++) { var r = 0 | t.words[n]; e += 977 * r, t.words[n] = 67108863 & e, e = 64 * r + (e / 67108864 | 0) } return 0 === t.words[t.length - 1] && (t.length--, 0 === t.words[t.length - 1] && t.length--), t }, i(m, b), i(_, b), i(w, b), w.prototype.imulK = function(t) { for (var e = 0, n = 0; n < t.length; n++) { var r = 19 * (0 | t.words[n]) + e, i = 67108863 & r; r >>>= 26, t.words[n] = i, e = r } return 0 !== e && (t.words[t.length++] = e), t }, a._prime = function(t) { if (y[t]) return y[t]; var e; if ("k256" === t) e = new v; else if ("p224" === t) e = new m; else if ("p192" === t) e = new _; else { if ("p25519" !== t) throw new Error("Unknown prime " + t); e = new w } return y[t] = e, e }, x.prototype._verify1 = function(t) { r(0 === t.negative, "red works only with positives"), r(t.red, "red works only with red numbers") }, x.prototype._verify2 = function(t, e) { r(0 == (t.negative | e.negative), "red works only with positives"), r(t.red && t.red === e.red, "red works only with red numbers") }, x.prototype.imod = function(t) { return this.prime ? this.prime.ireduce(t)._forceRed(this) : t.umod(this.m)._forceRed(this) }, x.prototype.neg = function(t) { return t.isZero() ? t.clone() : this.m.sub(t)._forceRed(this) }, x.prototype.add = function(t, e) { this._verify2(t, e); var n = t.add(e); return n.cmp(this.m) >= 0 && n.isub(this.m), n._forceRed(this) }, x.prototype.iadd = function(t, e) { this._verify2(t, e); var n = t.iadd(e); return n.cmp(this.m) >= 0 && n.isub(this.m), n }, x.prototype.sub = function(t, e) { this._verify2(t, e); var n = t.sub(e); return n.cmpn(0) < 0 && n.iadd(this.m), n._forceRed(this) }, x.prototype.isub = function(t, e) { this._verify2(t, e); var n = t.isub(e); return n.cmpn(0) < 0 && n.iadd(this.m), n }, x.prototype.shl = function(t, e) { return this._verify1(t), this.imod(t.ushln(e)) }, x.prototype.imul = function(t, e) { return this._verify2(t, e), this.imod(t.imul(e)) }, x.prototype.mul = function(t, e) { return this._verify2(t, e), this.imod(t.mul(e)) }, x.prototype.isqr = function(t) { return this.imul(t, t.clone()) }, x.prototype.sqr = function(t) { return this.mul(t, t) }, x.prototype.sqrt = function(t) { if (t.isZero()) return t.clone(); var e = this.m.andln(3); if (r(e % 2 == 1), 3 === e) { var n = this.m.add(new a(1)).iushrn(2); return this.pow(t, n) } for (var i = this.m.subn(1), o = 0; !i.isZero() && 0 === i.andln(1);) o++, i.iushrn(1); r(!i.isZero()); var s = new a(1).toRed(this), u = s.redNeg(), c = this.m.subn(1).iushrn(1), f = this.m.bitLength(); for (f = new a(2 * f * f).toRed(this); 0 !== this.pow(f, c).cmp(u);) f.redIAdd(u); for (var l = this.pow(f, i), h = this.pow(t, i.addn(1).iushrn(1)), d = this.pow(t, i), p = o; 0 !== d.cmp(s);) { for (var g = d, y = 0; 0 !== g.cmp(s); y++) g = g.redSqr(); r(y < p); var b = this.pow(l, new a(1).iushln(p - y - 1)); h = h.redMul(b), l = b.redSqr(), d = d.redMul(l), p = y } return h }, x.prototype.invm = function(t) { var e = t._invmp(this.m); return 0 !== e.negative ? (e.negative = 0, this.imod(e).redNeg()) : this.imod(e) }, x.prototype.pow = function(t, e) { if (e.isZero()) return new a(1).toRed(this); if (0 === e.cmpn(1)) return t.clone(); var n = new Array(16); n[0] = new a(1).toRed(this), n[1] = t; for (var r = 2; r < n.length; r++) n[r] = this.mul(n[r - 1], t); var i = n[0], o = 0, s = 0, u = e.bitLength() % 26; for (0 === u && (u = 26), r = e.length - 1; r >= 0; r--) { for (var c = e.words[r], f = u - 1; f >= 0; f--) { var l = c >> f & 1; i !== n[0] && (i = this.sqr(i)), 0 !== l || 0 !== o ? (o <<= 1, o |= l, (4 === ++s || 0 === r && 0 === f) && (i = this.mul(i, n[o]), s = 0, o = 0)) : s = 0 } u = 26 } return i }, x.prototype.convertTo = function(t) { var e = t.umod(this.m); return e === t ? e.clone() : e }, x.prototype.convertFrom = function(t) { var e = t.clone(); return e.red = null, e }, a.mont = function(t) { return new k(t) }, i(k, x), k.prototype.convertTo = function(t) { return this.imod(t.ushln(this.shift)) }, k.prototype.convertFrom = function(t) { var e = this.imod(t.mul(this.rinv)); return e.red = null, e }, k.prototype.imul = function(t, e) { if (t.isZero() || e.isZero()) return t.words[0] = 0, t.length = 1, t; var n = t.imul(e), r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), i = n.isub(r).iushrn(this.shift), a = i; return i.cmp(this.m) >= 0 ? a = i.isub(this.m) : i.cmpn(0) < 0 && (a = i.iadd(this.m)), a._forceRed(this) }, k.prototype.mul = function(t, e) { if (t.isZero() || e.isZero()) return new a(0)._forceRed(this); var n = t.mul(e), r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), i = n.isub(r).iushrn(this.shift), o = i; return i.cmp(this.m) >= 0 ? o = i.isub(this.m) : i.cmpn(0) < 0 && (o = i.iadd(this.m)), o._forceRed(this) }, k.prototype.invm = function(t) { return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this) } }(t, this) }).call(this, n(9)(t)) }, function(t, e) { var n = Array.isArray; t.exports = n }, function(t, e) { var n, r, i = t.exports = {}; function a() { throw new Error("setTimeout has not been defined") } function o() { throw new Error("clearTimeout has not been defined") } function s(t) { if (n === setTimeout) return setTimeout(t, 0); if ((n === a || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0); try { return n(t, 0) } catch (e) { try { return n.call(null, t, 0) } catch (e) { return n.call(this, t, 0) } } }! function() { try { n = "function" == typeof setTimeout ? setTimeout : a } catch (t) { n = a } try { r = "function" == typeof clearTimeout ? clearTimeout : o } catch (t) { r = o } }(); var u, c = [], f = !1, l = -1; function h() { f && u && (f = !1, u.length ? c = u.concat(c) : l = -1, c.length && d()) } function d() { if (!f) { var t = s(h); f = !0; for (var e = c.length; e;) { for (u = c, c = []; ++l < e;) u && u[l].run(); l = -1, e = c.length } u = null, f = !1, function(t) { if (r === clearTimeout) return clearTimeout(t); if ((r === o || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t); try { r(t) } catch (e) { try { return r.call(null, t) } catch (e) { return r.call(this, t) } } }(t) } } function p(t, e) { this.fun = t, this.array = e } function g() {} i.nextTick = function(t) { var e = new Array(arguments.length - 1); if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; c.push(new p(t, e)), 1 !== c.length || f || s(d) }, p.prototype.run = function() { this.fun.apply(null, this.array) }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = g, i.addListener = g, i.once = g, i.off = g, i.removeListener = g, i.removeAllListeners = g, i.emit = g, i.prependListener = g, i.prependOnceListener = g, i.listeners = function(t) { return [] }, i.binding = function(t) { throw new Error("process.binding is not supported") }, i.cwd = function() { return "/" }, i.chdir = function(t) { throw new Error("process.chdir is not supported") }, i.umask = function() { return 0 } }, function(t, e, n) { "use strict"; (function(t) { /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh <http://feross.org> * @license MIT */ var r = n(421), i = n(422), a = n(191); function o() { return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 } function s(t, e) { if (o() < e) throw new RangeError("Invalid typed array length"); return u.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = u.prototype : (null === t && (t = new u(e)), t.length = e), t } function u(t, e, n) { if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, n); if ("number" == typeof t) { if ("string" == typeof e) throw new Error("If encoding is specified then the first argument must be a string"); return l(this, t) } return c(this, t, e, n) } function c(t, e, n, r) { if ("number" == typeof e) throw new TypeError('"value" argument must not be a number'); return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function(t, e, n, r) { if (e.byteLength, n < 0 || e.byteLength < n) throw new RangeError("'offset' is out of bounds"); if (e.byteLength < n + (r || 0)) throw new RangeError("'length' is out of bounds"); e = void 0 === n && void 0 === r ? new Uint8Array(e) : void 0 === r ? new Uint8Array(e, n) : new Uint8Array(e, n, r); u.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = u.prototype : t = h(t, e); return t }(t, e, n, r) : "string" == typeof e ? function(t, e, n) { "string" == typeof n && "" !== n || (n = "utf8"); if (!u.isEncoding(n)) throw new TypeError('"encoding" must be a valid string encoding'); var r = 0 | p(e, n), i = (t = s(t, r)).write(e, n); i !== r && (t = t.slice(0, i)); return t }(t, e, n) : function(t, e) { if (u.isBuffer(e)) { var n = 0 | d(e.length); return 0 === (t = s(t, n)).length ? t : (e.copy(t, 0, 0, n), t) } if (e) { if ("undefined" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || "length" in e) return "number" != typeof e.length || (r = e.length) != r ? s(t, 0) : h(t, e); if ("Buffer" === e.type && a(e.data)) return h(t, e.data) } var r; throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") }(t, e) } function f(t) { if ("number" != typeof t) throw new TypeError('"size" argument must be a number'); if (t < 0) throw new RangeError('"size" argument must not be negative') } function l(t, e) { if (f(e), t = s(t, e < 0 ? 0 : 0 | d(e)), !u.TYPED_ARRAY_SUPPORT) for (var n = 0; n < e; ++n) t[n] = 0; return t } function h(t, e) { var n = e.length < 0 ? 0 : 0 | d(e.length); t = s(t, n); for (var r = 0; r < n; r += 1) t[r] = 255 & e[r]; return t } function d(t) { if (t >= o()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + o().toString(16) + " bytes"); return 0 | t } function p(t, e) { if (u.isBuffer(t)) return t.length; if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength; "string" != typeof t && (t = "" + t); var n = t.length; if (0 === n) return 0; for (var r = !1;;) switch (e) { case "ascii": case "latin1": case "binary": return n; case "utf8": case "utf-8": case void 0: return U(t).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return 2 * n; case "hex": return n >>> 1; case "base64": return z(t).length; default: if (r) return U(t).length; e = ("" + e).toLowerCase(), r = !0 } } function g(t, e, n) { var r = !1; if ((void 0 === e || e < 0) && (e = 0), e > this.length) return ""; if ((void 0 === n || n > this.length) && (n = this.length), n <= 0) return ""; if ((n >>>= 0) <= (e >>>= 0)) return ""; for (t || (t = "utf8");;) switch (t) { case "hex": return C(this, e, n); case "utf8": case "utf-8": return S(this, e, n); case "ascii": return T(this, e, n); case "latin1": case "binary": return D(this, e, n); case "base64": return A(this, e, n); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return N(this, e, n); default: if (r) throw new TypeError("Unknown encoding: " + t); t = (t + "").toLowerCase(), r = !0 } } function y(t, e, n) { var r = t[e]; t[e] = t[n], t[n] = r } function b(t, e, n, r, i) { if (0 === t.length) return -1; if ("string" == typeof n ? (r = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), n = +n, isNaN(n) && (n = i ? 0 : t.length - 1), n < 0 && (n = t.length + n), n >= t.length) { if (i) return -1; n = t.length - 1 } else if (n < 0) { if (!i) return -1; n = 0 } if ("string" == typeof e && (e = u.from(e, r)), u.isBuffer(e)) return 0 === e.length ? -1 : v(t, e, n, r, i); if ("number" == typeof e) return e &= 255, u.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? i ? Uint8Array.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf.call(t, e, n) : v(t, [e], n, r, i); throw new TypeError("val must be string, number or Buffer") } function v(t, e, n, r, i) { var a, o = 1, s = t.length, u = e.length; if (void 0 !== r && ("ucs2" === (r = String(r).toLowerCase()) || "ucs-2" === r || "utf16le" === r || "utf-16le" === r)) { if (t.length < 2 || e.length < 2) return -1; o = 2, s /= 2, u /= 2, n /= 2 } function c(t, e) { return 1 === o ? t[e] : t.readUInt16BE(e * o) } if (i) { var f = -1; for (a = n; a < s; a++) if (c(t, a) === c(e, -1 === f ? 0 : a - f)) { if (-1 === f && (f = a), a - f + 1 === u) return f * o } else -1 !== f && (a -= a - f), f = -1 } else for (n + u > s && (n = s - u), a = n; a >= 0; a--) { for (var l = !0, h = 0; h < u; h++) if (c(t, a + h) !== c(e, h)) { l = !1; break } if (l) return a } return -1 } function m(t, e, n, r) { n = Number(n) || 0; var i = t.length - n; r ? (r = Number(r)) > i && (r = i) : r = i; var a = e.length; if (a % 2 != 0) throw new TypeError("Invalid hex string"); r > a / 2 && (r = a / 2); for (var o = 0; o < r; ++o) { var s = parseInt(e.substr(2 * o, 2), 16); if (isNaN(s)) return o; t[n + o] = s } return o } function _(t, e, n, r) { return Y(U(e, t.length - n), t, n, r) } function w(t, e, n, r) { return Y(function(t) { for (var e = [], n = 0; n < t.length; ++n) e.push(255 & t.charCodeAt(n)); return e }(e), t, n, r) } function x(t, e, n, r) { return w(t, e, n, r) } function k(t, e, n, r) { return Y(z(e), t, n, r) } function E(t, e, n, r) { return Y(function(t, e) { for (var n, r, i, a = [], o = 0; o < t.length && !((e -= 2) < 0); ++o) n = t.charCodeAt(o), r = n >> 8, i = n % 256, a.push(i), a.push(r); return a }(e, t.length - n), t, n, r) } function A(t, e, n) { return 0 === e && n === t.length ? r.fromByteArray(t) : r.fromByteArray(t.slice(e, n)) } function S(t, e, n) { n = Math.min(t.length, n); for (var r = [], i = e; i < n;) { var a, o, s, u, c = t[i], f = null, l = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1; if (i + l <= n) switch (l) { case 1: c < 128 && (f = c); break; case 2: 128 == (192 & (a = t[i + 1])) && (u = (31 & c) << 6 | 63 & a) > 127 && (f = u); break; case 3: a = t[i + 1], o = t[i + 2], 128 == (192 & a) && 128 == (192 & o) && (u = (15 & c) << 12 | (63 & a) << 6 | 63 & o) > 2047 && (u < 55296 || u > 57343) && (f = u); break; case 4: a = t[i + 1], o = t[i + 2], s = t[i + 3], 128 == (192 & a) && 128 == (192 & o) && 128 == (192 & s) && (u = (15 & c) << 18 | (63 & a) << 12 | (63 & o) << 6 | 63 & s) > 65535 && u < 1114112 && (f = u) } null === f ? (f = 65533, l = 1) : f > 65535 && (f -= 65536, r.push(f >>> 10 & 1023 | 55296), f = 56320 | 1023 & f), r.push(f), i += l } return function(t) { var e = t.length; if (e <= M) return String.fromCharCode.apply(String, t); var n = "", r = 0; for (; r < e;) n += String.fromCharCode.apply(String, t.slice(r, r += M)); return n }(r) } e.Buffer = u, e.SlowBuffer = function(t) { +t != t && (t = 0); return u.alloc(+t) }, e.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function() { try { var t = new Uint8Array(1); return t.__proto__ = { __proto__: Uint8Array.prototype, foo: function() { return 42 } }, 42 === t.foo() && "function" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength } catch (t) { return !1 } }(), e.kMaxLength = o(), u.poolSize = 8192, u._augment = function(t) { return t.__proto__ = u.prototype, t }, u.from = function(t, e, n) { return c(null, t, e, n) }, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, { value: null, configurable: !0 })), u.alloc = function(t, e, n) { return function(t, e, n, r) { return f(e), e <= 0 ? s(t, e) : void 0 !== n ? "string" == typeof r ? s(t, e).fill(n, r) : s(t, e).fill(n) : s(t, e) }(null, t, e, n) }, u.allocUnsafe = function(t) { return l(null, t) }, u.allocUnsafeSlow = function(t) { return l(null, t) }, u.isBuffer = function(t) { return !(null == t || !t._isBuffer) }, u.compare = function(t, e) { if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError("Arguments must be Buffers"); if (t === e) return 0; for (var n = t.length, r = e.length, i = 0, a = Math.min(n, r); i < a; ++i) if (t[i] !== e[i]) { n = t[i], r = e[i]; break } return n < r ? -1 : r < n ? 1 : 0 }, u.isEncoding = function(t) { switch (String(t).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return !0; default: return !1 } }, u.concat = function(t, e) { if (!a(t)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === t.length) return u.alloc(0); var n; if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n) e += t[n].length; var r = u.allocUnsafe(e), i = 0; for (n = 0; n < t.length; ++n) { var o = t[n]; if (!u.isBuffer(o)) throw new TypeError('"list" argument must be an Array of Buffers'); o.copy(r, i), i += o.length } return r }, u.byteLength = p, u.prototype._isBuffer = !0, u.prototype.swap16 = function() { var t = this.length; if (t % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var e = 0; e < t; e += 2) y(this, e, e + 1); return this }, u.prototype.swap32 = function() { var t = this.length; if (t % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var e = 0; e < t; e += 4) y(this, e, e + 3), y(this, e + 1, e + 2); return this }, u.prototype.swap64 = function() { var t = this.length; if (t % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var e = 0; e < t; e += 8) y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4); return this }, u.prototype.toString = function() { var t = 0 | this.length; return 0 === t ? "" : 0 === arguments.length ? S(this, 0, t) : g.apply(this, arguments) }, u.prototype.equals = function(t) { if (!u.isBuffer(t)) throw new TypeError("Argument must be a Buffer"); return this === t || 0 === u.compare(this, t) }, u.prototype.inspect = function() { var t = "", n = e.INSPECT_MAX_BYTES; return this.length > 0 && (t = this.toString("hex", 0, n).match(/.{2}/g).join(" "), this.length > n && (t += " ... ")), "<Buffer " + t + ">" }, u.prototype.compare = function(t, e, n, r, i) { if (!u.isBuffer(t)) throw new TypeError("Argument must be a Buffer"); if (void 0 === e && (e = 0), void 0 === n && (n = t ? t.length : 0), void 0 === r && (r = 0), void 0 === i && (i = this.length), e < 0 || n > t.length || r < 0 || i > this.length) throw new RangeError("out of range index"); if (r >= i && e >= n) return 0; if (r >= i) return -1; if (e >= n) return 1; if (this === t) return 0; for (var a = (i >>>= 0) - (r >>>= 0), o = (n >>>= 0) - (e >>>= 0), s = Math.min(a, o), c = this.slice(r, i), f = t.slice(e, n), l = 0; l < s; ++l) if (c[l] !== f[l]) { a = c[l], o = f[l]; break } return a < o ? -1 : o < a ? 1 : 0 }, u.prototype.includes = function(t, e, n) { return -1 !== this.indexOf(t, e, n) }, u.prototype.indexOf = function(t, e, n) { return b(this, t, e, n, !0) }, u.prototype.lastIndexOf = function(t, e, n) { return b(this, t, e, n, !1) }, u.prototype.write = function(t, e, n, r) { if (void 0 === e) r = "utf8", n = this.length, e = 0; else if (void 0 === n && "string" == typeof e) r = e, n = this.length, e = 0; else { if (!isFinite(e)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); e |= 0, isFinite(n) ? (n |= 0, void 0 === r && (r = "utf8")) : (r = n, n = void 0) } var i = this.length - e; if ((void 0 === n || n > i) && (n = i), t.length > 0 && (n < 0 || e < 0) || e > this.length) throw new RangeError("Attempt to write outside buffer bounds"); r || (r = "utf8"); for (var a = !1;;) switch (r) { case "hex": return m(this, t, e, n); case "utf8": case "utf-8": return _(this, t, e, n); case "ascii": return w(this, t, e, n); case "latin1": case "binary": return x(this, t, e, n); case "base64": return k(this, t, e, n); case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return E(this, t, e, n); default: if (a) throw new TypeError("Unknown encoding: " + r); r = ("" + r).toLowerCase(), a = !0 } }, u.prototype.toJSON = function() { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } }; var M = 4096; function T(t, e, n) { var r = ""; n = Math.min(t.length, n); for (var i = e; i < n; ++i) r += String.fromCharCode(127 & t[i]); return r } function D(t, e, n) { var r = ""; n = Math.min(t.length, n); for (var i = e; i < n; ++i) r += String.fromCharCode(t[i]); return r } function C(t, e, n) { var r = t.length; (!e || e < 0) && (e = 0), (!n || n < 0 || n > r) && (n = r); for (var i = "", a = e; a < n; ++a) i += j(t[a]); return i } function N(t, e, n) { for (var r = t.slice(e, n), i = "", a = 0; a < r.length; a += 2) i += String.fromCharCode(r[a] + 256 * r[a + 1]); return i } function I(t, e, n) { if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint"); if (t + e > n) throw new RangeError("Trying to access beyond buffer length") } function L(t, e, n, r, i, a) { if (!u.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (e > i || e < a) throw new RangeError('"value" argument is out of bounds'); if (n + r > t.length) throw new RangeError("Index out of range") } function B(t, e, n, r) { e < 0 && (e = 65535 + e + 1); for (var i = 0, a = Math.min(t.length - n, 2); i < a; ++i) t[n + i] = (e & 255 << 8 * (r ? i : 1 - i)) >>> 8 * (r ? i : 1 - i) } function O(t, e, n, r) { e < 0 && (e = 4294967295 + e + 1); for (var i = 0, a = Math.min(t.length - n, 4); i < a; ++i) t[n + i] = e >>> 8 * (r ? i : 3 - i) & 255 } function R(t, e, n, r, i, a) { if (n + r > t.length) throw new RangeError("Index out of range"); if (n < 0) throw new RangeError("Index out of range") } function P(t, e, n, r, a) { return a || R(t, 0, n, 4), i.write(t, e, n, r, 23, 4), n + 4 } function F(t, e, n, r, a) { return a || R(t, 0, n, 8), i.write(t, e, n, r, 52, 8), n + 8 } u.prototype.slice = function(t, e) { var n, r = this.length; if ((t = ~~t) < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), (e = void 0 === e ? r : ~~e) < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), e < t && (e = t), u.TYPED_ARRAY_SUPPORT)(n = this.subarray(t, e)).__proto__ = u.prototype; else { var i = e - t; n = new u(i, void 0); for (var a = 0; a < i; ++a) n[a] = this[a + t] } return n }, u.prototype.readUIntLE = function(t, e, n) { t |= 0, e |= 0, n || I(t, e, this.length); for (var r = this[t], i = 1, a = 0; ++a < e && (i *= 256);) r += this[t + a] * i; return r }, u.prototype.readUIntBE = function(t, e, n) { t |= 0, e |= 0, n || I(t, e, this.length); for (var r = this[t + --e], i = 1; e > 0 && (i *= 256);) r += this[t + --e] * i; return r }, u.prototype.readUInt8 = function(t, e) { return e || I(t, 1, this.length), this[t] }, u.prototype.readUInt16LE = function(t, e) { return e || I(t, 2, this.length), this[t] | this[t + 1] << 8 }, u.prototype.readUInt16BE = function(t, e) { return e || I(t, 2, this.length), this[t] << 8 | this[t + 1] }, u.prototype.readUInt32LE = function(t, e) { return e || I(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3] }, u.prototype.readUInt32BE = function(t, e) { return e || I(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]) }, u.prototype.readIntLE = function(t, e, n) { t |= 0, e |= 0, n || I(t, e, this.length); for (var r = this[t], i = 1, a = 0; ++a < e && (i *= 256);) r += this[t + a] * i; return r >= (i *= 128) && (r -= Math.pow(2, 8 * e)), r }, u.prototype.readIntBE = function(t, e, n) { t |= 0, e |= 0, n || I(t, e, this.length); for (var r = e, i = 1, a = this[t + --r]; r > 0 && (i *= 256);) a += this[t + --r] * i; return a >= (i *= 128) && (a -= Math.pow(2, 8 * e)), a }, u.prototype.readInt8 = function(t, e) { return e || I(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t] }, u.prototype.readInt16LE = function(t, e) { e || I(t, 2, this.length); var n = this[t] | this[t + 1] << 8; return 32768 & n ? 4294901760 | n : n }, u.prototype.readInt16BE = function(t, e) { e || I(t, 2, this.length); var n = this[t + 1] | this[t] << 8; return 32768 & n ? 4294901760 | n : n }, u.prototype.readInt32LE = function(t, e) { return e || I(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24 }, u.prototype.readInt32BE = function(t, e) { return e || I(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3] }, u.prototype.readFloatLE = function(t, e) { return e || I(t, 4, this.length), i.read(this, t, !0, 23, 4) }, u.prototype.readFloatBE = function(t, e) { return e || I(t, 4, this.length), i.read(this, t, !1, 23, 4) }, u.prototype.readDoubleLE = function(t, e) { return e || I(t, 8, this.length), i.read(this, t, !0, 52, 8) }, u.prototype.readDoubleBE = function(t, e) { return e || I(t, 8, this.length), i.read(this, t, !1, 52, 8) }, u.prototype.writeUIntLE = function(t, e, n, r) { (t = +t, e |= 0, n |= 0, r) || L(this, t, e, n, Math.pow(2, 8 * n) - 1, 0); var i = 1, a = 0; for (this[e] = 255 & t; ++a < n && (i *= 256);) this[e + a] = t / i & 255; return e + n }, u.prototype.writeUIntBE = function(t, e, n, r) { (t = +t, e |= 0, n |= 0, r) || L(this, t, e, n, Math.pow(2, 8 * n) - 1, 0); var i = n - 1, a = 1; for (this[e + i] = 255 & t; --i >= 0 && (a *= 256);) this[e + i] = t / a & 255; return e + n }, u.prototype.writeUInt8 = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1 }, u.prototype.writeUInt16LE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : B(this, t, e, !0), e + 2 }, u.prototype.writeUInt16BE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : B(this, t, e, !1), e + 2 }, u.prototype.writeUInt32LE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16, this[e + 1] = t >>> 8, this[e] = 255 & t) : O(this, t, e, !0), e + 4 }, u.prototype.writeUInt32BE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : O(this, t, e, !1), e + 4 }, u.prototype.writeIntLE = function(t, e, n, r) { if (t = +t, e |= 0, !r) { var i = Math.pow(2, 8 * n - 1); L(this, t, e, n, i - 1, -i) } var a = 0, o = 1, s = 0; for (this[e] = 255 & t; ++a < n && (o *= 256);) t < 0 && 0 === s && 0 !== this[e + a - 1] && (s = 1), this[e + a] = (t / o >> 0) - s & 255; return e + n }, u.prototype.writeIntBE = function(t, e, n, r) { if (t = +t, e |= 0, !r) { var i = Math.pow(2, 8 * n - 1); L(this, t, e, n, i - 1, -i) } var a = n - 1, o = 1, s = 0; for (this[e + a] = 255 & t; --a >= 0 && (o *= 256);) t < 0 && 0 === s && 0 !== this[e + a + 1] && (s = 1), this[e + a] = (t / o >> 0) - s & 255; return e + n }, u.prototype.writeInt8 = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1), this[e] = 255 & t, e + 1 }, u.prototype.writeInt16LE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : B(this, t, e, !0), e + 2 }, u.prototype.writeInt16BE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : B(this, t, e, !1), e + 2 }, u.prototype.writeInt32LE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[e + 2] = t >>> 16, this[e + 3] = t >>> 24) : O(this, t, e, !0), e + 4 }, u.prototype.writeInt32BE = function(t, e, n) { return t = +t, e |= 0, n || L(this, t, e, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : O(this, t, e, !1), e + 4 }, u.prototype.writeFloatLE = function(t, e, n) { return P(this, t, e, !0, n) }, u.prototype.writeFloatBE = function(t, e, n) { return P(this, t, e, !1, n) }, u.prototype.writeDoubleLE = function(t, e, n) { return F(this, t, e, !0, n) }, u.prototype.writeDoubleBE = function(t, e, n) { return F(this, t, e, !1, n) }, u.prototype.copy = function(t, e, n, r) { if (n || (n = 0), r || 0 === r || (r = this.length), e >= t.length && (e = t.length), e || (e = 0), r > 0 && r < n && (r = n), r === n) return 0; if (0 === t.length || 0 === this.length) return 0; if (e < 0) throw new RangeError("targetStart out of bounds"); if (n < 0 || n >= this.length) throw new RangeError("sourceStart out of bounds"); if (r < 0) throw new RangeError("sourceEnd out of bounds"); r > this.length && (r = this.length), t.length - e < r - n && (r = t.length - e + n); var i, a = r - n; if (this === t && n < e && e < r) for (i = a - 1; i >= 0; --i) t[i + e] = this[i + n]; else if (a < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (i = 0; i < a; ++i) t[i + e] = this[i + n]; else Uint8Array.prototype.set.call(t, this.subarray(n, n + a), e); return a }, u.prototype.fill = function(t, e, n, r) { if ("string" == typeof t) { if ("string" == typeof e ? (r = e, e = 0, n = this.length) : "string" == typeof n && (r = n, n = this.length), 1 === t.length) { var i = t.charCodeAt(0); i < 256 && (t = i) } if (void 0 !== r && "string" != typeof r) throw new TypeError("encoding must be a string"); if ("string" == typeof r && !u.isEncoding(r)) throw new TypeError("Unknown encoding: " + r) } else "number" == typeof t && (t &= 255); if (e < 0 || this.length < e || this.length < n) throw new RangeError("Out of range index"); if (n <= e) return this; var a; if (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0), "number" == typeof t) for (a = e; a < n; ++a) this[a] = t; else { var o = u.isBuffer(t) ? t : U(new u(t, r).toString()), s = o.length; for (a = 0; a < n - e; ++a) this[a + e] = o[a % s] } return this }; var q = /[^+\/0-9A-Za-z-_]/g; function j(t) { return t < 16 ? "0" + t.toString(16) : t.toString(16) } function U(t, e) { var n; e = e || 1 / 0; for (var r = t.length, i = null, a = [], o = 0; o < r; ++o) { if ((n = t.charCodeAt(o)) > 55295 && n < 57344) { if (!i) { if (n > 56319) { (e -= 3) > -1 && a.push(239, 191, 189); continue } if (o + 1 === r) { (e -= 3) > -1 && a.push(239, 191, 189); continue } i = n; continue } if (n < 56320) { (e -= 3) > -1 && a.push(239, 191, 189), i = n; continue } n = 65536 + (i - 55296 << 10 | n - 56320) } else i && (e -= 3) > -1 && a.push(239, 191, 189); if (i = null, n < 128) { if ((e -= 1) < 0) break; a.push(n) } else if (n < 2048) { if ((e -= 2) < 0) break; a.push(n >> 6 | 192, 63 & n | 128) } else if (n < 65536) { if ((e -= 3) < 0) break; a.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128) } else { if (!(n < 1114112)) throw new Error("Invalid code point"); if ((e -= 4) < 0) break; a.push(n >> 18 | 240, n >> 12 & 63 | 128, n >> 6 & 63 | 128, 63 & n | 128) } } return a } function z(t) { return r.toByteArray(function(t) { if ((t = function(t) { return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "") }(t).replace(q, "")).length < 2) return ""; for (; t.length % 4 != 0;) t += "="; return t }(t)) } function Y(t, e, n, r) { for (var i = 0; i < r && !(i + n >= e.length || i >= t.length); ++i) e[i + n] = t[i]; return i } }).call(this, n(12)) }, function(t, e) { t.exports = function(t) { return t.webpackPolyfill || (t.deprecate = function() {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, "loaded", { enumerable: !0, get: function() { return t.l } }), Object.defineProperty(t, "id", { enumerable: !0, get: function() { return t.i } }), t.webpackPolyfill = 1), t } }, function(t, e, n) { "use strict"; var r = n(4), i = n(19).Graph; function a(t, e, n, i) { var a; do { a = r.uniqueId(i) } while (t.hasNode(a)); return n.dummy = e, t.setNode(a, n), a } function o(t) { return r.max(r.map(t.nodes(), (function(e) { var n = t.node(e).rank; if (!r.isUndefined(n)) return n }))) } t.exports = { addDummyNode: a, simplify: function(t) { var e = (new i).setGraph(t.graph()); return r.forEach(t.nodes(), (function(n) { e.setNode(n, t.node(n)) })), r.forEach(t.edges(), (function(n) { var r = e.edge(n.v, n.w) || { weight: 0, minlen: 1 }, i = t.edge(n); e.setEdge(n.v, n.w, { weight: r.weight + i.weight, minlen: Math.max(r.minlen, i.minlen) }) })), e }, asNonCompoundGraph: function(t) { var e = new i({ multigraph: t.isMultigraph() }).setGraph(t.graph()); return r.forEach(t.nodes(), (function(n) { t.children(n).length || e.setNode(n, t.node(n)) })), r.forEach(t.edges(), (function(n) { e.setEdge(n, t.edge(n)) })), e }, successorWeights: function(t) { var e = r.map(t.nodes(), (function(e) { var n = {}; return r.forEach(t.outEdges(e), (function(e) { n[e.w] = (n[e.w] || 0) + t.edge(e).weight })), n })); return r.zipObject(t.nodes(), e) }, predecessorWeights: function(t) { var e = r.map(t.nodes(), (function(e) { var n = {}; return r.forEach(t.inEdges(e), (function(e) { n[e.v] = (n[e.v] || 0) + t.edge(e).weight })), n })); return r.zipObject(t.nodes(), e) }, intersectRect: function(t, e) { var n, r, i = t.x, a = t.y, o = e.x - i, s = e.y - a, u = t.width / 2, c = t.height / 2; if (!o && !s) throw new Error("Not possible to find intersection inside of the rectangle"); Math.abs(s) * u > Math.abs(o) * c ? (s < 0 && (c = -c), n = c * o / s, r = c) : (o < 0 && (u = -u), n = u, r = u * s / o); return { x: i + n, y: a + r } }, buildLayerMatrix: function(t) { var e = r.map(r.range(o(t) + 1), (function() { return [] })); return r.forEach(t.nodes(), (function(n) { var i = t.node(n), a = i.rank; r.isUndefined(a) || (e[a][i.order] = n) })), e }, normalizeRanks: function(t) { var e = r.min(r.map(t.nodes(), (function(e) { return t.node(e).rank }))); r.forEach(t.nodes(), (function(n) { var i = t.node(n); r.has(i, "rank") && (i.rank -= e) })) }, removeEmptyRanks: function(t) { var e = r.min(r.map(t.nodes(), (function(e) { return t.node(e).rank }))), n = []; r.forEach(t.nodes(), (function(r) { var i = t.node(r).rank - e; n[i] || (n[i] = []), n[i].push(r) })); var i = 0, a = t.graph().nodeRankFactor; r.forEach(n, (function(e, n) { r.isUndefined(e) && n % a != 0 ? --i : i && r.forEach(e, (function(e) { t.node(e).rank += i })) })) }, addBorderNode: function(t, e, n, r) { var i = { width: 0, height: 0 }; arguments.length >= 4 && (i.rank = n, i.order = r); return a(t, "border", i, e) }, maxRank: o, partition: function(t, e) { var n = { lhs: [], rhs: [] }; return r.forEach(t, (function(t) { e(t) ? n.lhs.push(t) : n.rhs.push(t) })), n }, time: function(t, e) { var n = r.now(); try { return e() } finally { console.log(t + " time: " + (r.now() - n) + "ms") } }, notime: function(t, e) { return e() } } }, function(t, e, n) { /** * @license * Copyright (c) 2012-2013 Chris Pettitt * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ t.exports = { graphlib: n(348), dagre: n(175), intersect: n(405), render: n(407), util: n(15), version: n(419) } }, function(t, e) { var n; n = function() { return this }(); try { n = n || new Function("return this")() } catch (t) { "object" == typeof window && (n = window) } t.exports = n }, function(t, e, n) { var r; try { r = { clone: n(237), constant: n(99), each: n(100), filter: n(150), has: n(106), isArray: n(6), isEmpty: n(313), isFunction: n(37), isUndefined: n(161), keys: n(27), map: n(162), reduce: n(164), size: n(316), transform: n(322), union: n(323), values: n(169) } } catch (t) {} r || (r = window._), t.exports = r }, function(t, e) { t.exports = function(t) { var e = typeof t; return null != t && ("object" == e || "function" == e) } }, function(t, e, n) { var r = n(43); t.exports = { isSubgraph: function(t, e) { return !!t.children(e).length }, edgeToId: function(t) { return a(t.v) + ":" + a(t.w) + ":" + a(t.name) }, applyStyle: function(t, e) { e && t.attr("style", e) }, applyClass: function(t, e, n) { e && t.attr("class", e).attr("class", n + " " + t.attr("class")) }, applyTransition: function(t, e) { var n = e.graph(); if (r.isPlainObject(n)) { var i = n.transition; if (r.isFunction(i)) return i(t) } return t } }; var i = /:/g; function a(t) { return t ? String(t).replace(i, "\\:") : "" } }, function(t, e) { function n(t, e) { if (!t) throw new Error(e || "Assertion failed") } t.exports = n, n.equal = function(t, e, n) { if (t != e) throw new Error(n || "Assertion failed: " + t + " != " + e) } }, function(t, e, n) { "use strict"; var r = e, i = n(5), a = n(16), o = n(215); r.assert = a, r.toArray = o.toArray, r.zero2 = o.zero2, r.toHex = o.toHex, r.encode = o.encode, r.getNAF = function(t, e, n) { var r = new Array(Math.max(t.bitLength(), n) + 1); r.fill(0); for (var i = 1 << e + 1, a = t.clone(), o = 0; o < r.length; o++) { var s, u = a.andln(i - 1); a.isOdd() ? (s = u > (i >> 1) - 1 ? (i >> 1) - u : u, a.isubn(s)) : s = 0, r[o] = s, a.iushrn(1) } return r }, r.getJSF = function(t, e) { var n = [ [], [] ]; t = t.clone(), e = e.clone(); for (var r = 0, i = 0; t.cmpn(-r) > 0 || e.cmpn(-i) > 0;) { var a, o, s, u = t.andln(3) + r & 3, c = e.andln(3) + i & 3; if (3 === u && (u = -1), 3 === c && (c = -1), 0 == (1 & u)) a = 0; else a = 3 !== (s = t.andln(7) + r & 7) && 5 !== s || 2 !== c ? u : -u; if (n[0].push(a), 0 == (1 & c)) o = 0; else o = 3 !== (s = e.andln(7) + i & 7) && 5 !== s || 2 !== u ? c : -c; n[1].push(o), 2 * r === a + 1 && (r = 1 - r), 2 * i === o + 1 && (i = 1 - i), t.iushrn(1), e.iushrn(1) } return n }, r.cachedProperty = function(t, e, n) { var r = "_" + e; t.prototype[e] = function() { return void 0 !== this[r] ? this[r] : this[r] = n.call(this) } }, r.parseBytes = function(t) { return "string" == typeof t ? r.toArray(t, "hex") : t }, r.intFromLE = function(t) { return new i(t, "hex", "le") } }, function(t, e, n) { var r = n(131), i = "object" == typeof self && self && self.Object === Object && self, a = r || i || Function("return this")(); t.exports = a }, function(t, e, n) { var r; try { r = n(25) } catch (t) {} r || (r = window.graphlib), t.exports = r }, function(t, e) { t.exports = function(t) { return null != t && "object" == typeof t } }, function(t, e, n) { "use strict"; var r = n(16), i = n(2); function a(t, e) { return 55296 == (64512 & t.charCodeAt(e)) && (!(e < 0 || e + 1 >= t.length) && 56320 == (64512 & t.charCodeAt(e + 1))) } function o(t) { return (t >>> 24 | t >>> 8 & 65280 | t << 8 & 16711680 | (255 & t) << 24) >>> 0 } function s(t) { return 1 === t.length ? "0" + t : t } function u(t) { return 7 === t.length ? "0" + t : 6 === t.length ? "00" + t : 5 === t.length ? "000" + t : 4 === t.length ? "0000" + t : 3 === t.length ? "00000" + t : 2 === t.length ? "000000" + t : 1 === t.length ? "0000000" + t : t } e.inherits = i, e.toArray = function(t, e) { if (Array.isArray(t)) return t.slice(); if (!t) return []; var n = []; if ("string" == typeof t) if (e) { if ("hex" === e) for ((t = t.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t = "0" + t), i = 0; i < t.length; i += 2) n.push(parseInt(t[i] + t[i + 1], 16)) } else for (var r = 0, i = 0; i < t.length; i++) { var o = t.charCodeAt(i); o < 128 ? n[r++] = o : o < 2048 ? (n[r++] = o >> 6 | 192, n[r++] = 63 & o | 128) : a(t, i) ? (o = 65536 + ((1023 & o) << 10) + (1023 & t.charCodeAt(++i)), n[r++] = o >> 18 | 240, n[r++] = o >> 12 & 63 | 128, n[r++] = o >> 6 & 63 | 128, n[r++] = 63 & o | 128) : (n[r++] = o >> 12 | 224, n[r++] = o >> 6 & 63 | 128, n[r++] = 63 & o | 128) } else for (i = 0; i < t.length; i++) n[i] = 0 | t[i]; return n }, e.toHex = function(t) { for (var e = "", n = 0; n < t.length; n++) e += s(t[n].toString(16)); return e }, e.htonl = o, e.toHex32 = function(t, e) { for (var n = "", r = 0; r < t.length; r++) { var i = t[r]; "little" === e && (i = o(i)), n += u(i.toString(16)) } return n }, e.zero2 = s, e.zero8 = u, e.join32 = function(t, e, n, i) { var a = n - e; r(a % 4 == 0); for (var o = new Array(a / 4), s = 0, u = e; s < o.length; s++, u += 4) { var c; c = "big" === i ? t[u] << 24 | t[u + 1] << 16 | t[u + 2] << 8 | t[u + 3] : t[u + 3] << 24 | t[u + 2] << 16 | t[u + 1] << 8 | t[u], o[s] = c >>> 0 } return o }, e.split32 = function(t, e) { for (var n = new Array(4 * t.length), r = 0, i = 0; r < t.length; r++, i += 4) { var a = t[r]; "big" === e ? (n[i] = a >>> 24, n[i + 1] = a >>> 16 & 255, n[i + 2] = a >>> 8 & 255, n[i + 3] = 255 & a) : (n[i + 3] = a >>> 24, n[i + 2] = a >>> 16 & 255, n[i + 1] = a >>> 8 & 255, n[i] = 255 & a) } return n }, e.rotr32 = function(t, e) { return t >>> e | t << 32 - e }, e.rotl32 = function(t, e) { return t << e | t >>> 32 - e }, e.sum32 = function(t, e) { return t + e >>> 0 }, e.sum32_3 = function(t, e, n) { return t + e + n >>> 0 }, e.sum32_4 = function(t, e, n, r) { return t + e + n + r >>> 0 }, e.sum32_5 = function(t, e, n, r, i) { return t + e + n + r + i >>> 0 }, e.sum64 = function(t, e, n, r) { var i = t[e], a = r + t[e + 1] >>> 0, o = (a < r ? 1 : 0) + n + i; t[e] = o >>> 0, t[e + 1] = a }, e.sum64_hi = function(t, e, n, r) { return (e + r >>> 0 < e ? 1 : 0) + t + n >>> 0 }, e.sum64_lo = function(t, e, n, r) { return e + r >>> 0 }, e.sum64_4_hi = function(t, e, n, r, i, a, o, s) { var u = 0, c = e; return u += (c = c + r >>> 0) < e ? 1 : 0, u += (c = c + a >>> 0) < a ? 1 : 0, t + n + i + o + (u += (c = c + s >>> 0) < s ? 1 : 0) >>> 0 }, e.sum64_4_lo = function(t, e, n, r, i, a, o, s) { return e + r + a + s >>> 0 }, e.sum64_5_hi = function(t, e, n, r, i, a, o, s, u, c) { var f = 0, l = e; return f += (l = l + r >>> 0) < e ? 1 : 0, f += (l = l + a >>> 0) < a ? 1 : 0, f += (l = l + s >>> 0) < s ? 1 : 0, t + n + i + o + u + (f += (l = l + c >>> 0) < c ? 1 : 0) >>> 0 }, e.sum64_5_lo = function(t, e, n, r, i, a, o, s, u, c) { return e + r + a + s + c >>> 0 }, e.rotr64_hi = function(t, e, n) { return (e << 32 - n | t >>> n) >>> 0 }, e.rotr64_lo = function(t, e, n) { return (t << 32 - n | e >>> n) >>> 0 }, e.shr64_hi = function(t, e, n) { return t >>> n }, e.shr64_lo = function(t, e, n) { return (t << 32 - n | e >>> n) >>> 0 } }, function(t, e, n) { (function(t) { t.exports = function() { "use strict"; var e, r; function i() { return e.apply(null, arguments) } function a(t) { return t instanceof Array || "[object Array]" === Object.prototype.toString.call(t) } function o(t) { return null != t && "[object Object]" === Object.prototype.toString.call(t) } function s(t) { return void 0 === t } function u(t) { return "number" == typeof t || "[object Number]" === Object.prototype.toString.call(t) } function c(t) { return t instanceof Date || "[object Date]" === Object.prototype.toString.call(t) } function f(t, e) { var n, r = []; for (n = 0; n < t.length; ++n) r.push(e(t[n], n)); return r } function l(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } function h(t, e) { for (var n in e) l(e, n) && (t[n] = e[n]); return l(e, "toString") && (t.toString = e.toString), l(e, "valueOf") && (t.valueOf = e.valueOf), t } function d(t, e, n, r) { return Me(t, e, n, r, !0).utc() } function p(t) { return null == t._pf && (t._pf = { empty: !1, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: !1, invalidMonth: null, invalidFormat: !1, userInvalidated: !1, iso: !1, parsedDateParts: [], meridiem: null, rfc2822: !1, weekdayMismatch: !1 }), t._pf } function g(t) { if (null == t._isValid) { var e = p(t), n = r.call(e.parsedDateParts, (function(t) { return null != t })), i = !isNaN(t._d.getTime()) && e.overflow < 0 && !e.empty && !e.invalidMonth && !e.invalidWeekday && !e.weekdayMismatch && !e.nullInput && !e.invalidFormat && !e.userInvalidated && (!e.meridiem || e.meridiem && n); if (t._strict && (i = i && 0 === e.charsLeftOver && 0 === e.unusedTokens.length && void 0 === e.bigHour), null != Object.isFrozen && Object.isFrozen(t)) return i; t._isValid = i } return t._isValid } function y(t) { var e = d(NaN); return null != t ? h(p(e), t) : p(e).userInvalidated = !0, e } r = Array.prototype.some ? Array.prototype.some : function(t) { for (var e = Object(this), n = e.length >>> 0, r = 0; r < n; r++) if (r in e && t.call(this, e[r], r, e)) return !0; return !1 }; var b = i.momentProperties = []; function v(t, e) { var n, r, i; if (s(e._isAMomentObject) || (t._isAMomentObject = e._isAMomentObject), s(e._i) || (t._i = e._i), s(e._f) || (t._f = e._f), s(e._l) || (t._l = e._l), s(e._strict) || (t._strict = e._strict), s(e._tzm) || (t._tzm = e._tzm), s(e._isUTC) || (t._isUTC = e._isUTC), s(e._offset) || (t._offset = e._offset), s(e._pf) || (t._pf = p(e)), s(e._locale) || (t._locale = e._locale), 0 < b.length) for (n = 0; n < b.length; n++) s(i = e[r = b[n]]) || (t[r] = i); return t } var m = !1; function _(t) { v(this, t), this._d = new Date(null != t._d ? t._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === m && (m = !0, i.updateOffset(this), m = !1) } function w(t) { return t instanceof _ || null != t && null != t._isAMomentObject } function x(t) { return t < 0 ? Math.ceil(t) || 0 : Math.floor(t) } function k(t) { var e = +t, n = 0; return 0 !== e && isFinite(e) && (n = x(e)), n } function E(t, e, n) { var r, i = Math.min(t.length, e.length), a = Math.abs(t.length - e.length), o = 0; for (r = 0; r < i; r++)(n && t[r] !== e[r] || !n && k(t[r]) !== k(e[r])) && o++; return o + a } function A(t) { !1 === i.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + t) } function S(t, e) { var n = !0; return h((function() { if (null != i.deprecationHandler && i.deprecationHandler(null, t), n) { for (var r, a = [], o = 0; o < arguments.length; o++) { if (r = "", "object" == typeof arguments[o]) { for (var s in r += "\n[" + o + "] ", arguments[0]) r += s + ": " + arguments[0][s] + ", "; r = r.slice(0, -2) } else r = arguments[o]; a.push(r) } A(t + "\nArguments: " + Array.prototype.slice.call(a).join("") + "\n" + (new Error).stack), n = !1 } return e.apply(this, arguments) }), e) } var M, T = {}; function D(t, e) { null != i.deprecationHandler && i.deprecationHandler(t, e), T[t] || (A(e), T[t] = !0) } function C(t) { return t instanceof Function || "[object Function]" === Object.prototype.toString.call(t) } function N(t, e) { var n, r = h({}, t); for (n in e) l(e, n) && (o(t[n]) && o(e[n]) ? (r[n] = {}, h(r[n], t[n]), h(r[n], e[n])) : null != e[n] ? r[n] = e[n] : delete r[n]); for (n in t) l(t, n) && !l(e, n) && o(t[n]) && (r[n] = h({}, r[n])); return r } function I(t) { null != t && this.set(t) } i.suppressDeprecationWarnings = !1, i.deprecationHandler = null, M = Object.keys ? Object.keys : function(t) { var e, n = []; for (e in t) l(t, e) && n.push(e); return n }; var L = {}; function B(t, e) { var n = t.toLowerCase(); L[n] = L[n + "s"] = L[e] = t } function O(t) { return "string" == typeof t ? L[t] || L[t.toLowerCase()] : void 0 } function R(t) { var e, n, r = {}; for (n in t) l(t, n) && (e = O(n)) && (r[e] = t[n]); return r } var P = {}; function F(t, e) { P[t] = e } function q(t, e, n) { var r = "" + Math.abs(t), i = e - r.length; return (0 <= t ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, i)).toString().substr(1) + r } var j = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, U = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, z = {}, Y = {}; function V(t, e, n, r) { var i = r; "string" == typeof r && (i = function() { return this[r]() }), t && (Y[t] = i), e && (Y[e[0]] = function() { return q(i.apply(this, arguments), e[1], e[2]) }), n && (Y[n] = function() { return this.localeData().ordinal(i.apply(this, arguments), t) }) } function H(t, e) { return t.isValid() ? (e = G(e, t.localeData()), z[e] = z[e] || function(t) { var e, n, r, i = t.match(j); for (e = 0, n = i.length; e < n; e++) Y[i[e]] ? i[e] = Y[i[e]] : i[e] = (r = i[e]).match(/\[[\s\S]/) ? r.replace(/^\[|\]$/g, "") : r.replace(/\\/g, ""); return function(e) { var r, a = ""; for (r = 0; r < n; r++) a += C(i[r]) ? i[r].call(e, t) : i[r]; return a } }(e), z[e](t)) : t.localeData().invalidDate() } function G(t, e) { var n = 5; function r(t) { return e.longDateFormat(t) || t } for (U.lastIndex = 0; 0 <= n && U.test(t);) t = t.replace(U, r), U.lastIndex = 0, n -= 1; return t } var $ = /\d/, W = /\d\d/, K = /\d{3}/, X = /\d{4}/, Z = /[+-]?\d{6}/, J = /\d\d?/, Q = /\d\d\d\d?/, tt = /\d\d\d\d\d\d?/, et = /\d{1,3}/, nt = /\d{1,4}/, rt = /[+-]?\d{1,6}/, it = /\d+/, at = /[+-]?\d+/, ot = /Z|[+-]\d\d:?\d\d/gi, st = /Z|[+-]\d\d(?::?\d\d)?/gi, ut = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, ct = {}; function ft(t, e, n) { ct[t] = C(e) ? e : function(t, r) { return t && n ? n : e } } function lt(t, e) { return l(ct, t) ? ct[t](e._strict, e._locale) : new RegExp(ht(t.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, (function(t, e, n, r, i) { return e || n || r || i })))) } function ht(t) { return t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") } var dt = {}; function pt(t, e) { var n, r = e; for ("string" == typeof t && (t = [t]), u(e) && (r = function(t, n) { n[e] = k(t) }), n = 0; n < t.length; n++) dt[t[n]] = r } function gt(t, e) { pt(t, (function(t, n, r, i) { r._w = r._w || {}, e(t, r._w, r, i) })) } var yt = 0, bt = 1, vt = 2, mt = 3, _t = 4, wt = 5, xt = 6, kt = 7, Et = 8; function At(t) { return St(t) ? 366 : 365 } function St(t) { return t % 4 == 0 && t % 100 != 0 || t % 400 == 0 } V("Y", 0, 0, (function() { var t = this.year(); return t <= 9999 ? "" + t : "+" + t })), V(0, ["YY", 2], 0, (function() { return this.year() % 100 })), V(0, ["YYYY", 4], 0, "year"), V(0, ["YYYYY", 5], 0, "year"), V(0, ["YYYYYY", 6, !0], 0, "year"), B("year", "y"), F("year", 1), ft("Y", at), ft("YY", J, W), ft("YYYY", nt, X), ft("YYYYY", rt, Z), ft("YYYYYY", rt, Z), pt(["YYYYY", "YYYYYY"], yt), pt("YYYY", (function(t, e) { e[yt] = 2 === t.length ? i.parseTwoDigitYear(t) : k(t) })), pt("YY", (function(t, e) { e[yt] = i.parseTwoDigitYear(t) })), pt("Y", (function(t, e) { e[yt] = parseInt(t, 10) })), i.parseTwoDigitYear = function(t) { return k(t) + (68 < k(t) ? 1900 : 2e3) }; var Mt, Tt = Dt("FullYear", !0); function Dt(t, e) { return function(n) { return null != n ? (Nt(this, t, n), i.updateOffset(this, e), this) : Ct(this, t) } } function Ct(t, e) { return t.isValid() ? t._d["get" + (t._isUTC ? "UTC" : "") + e]() : NaN } function Nt(t, e, n) { t.isValid() && !isNaN(n) && ("FullYear" === e && St(t.year()) && 1 === t.month() && 29 === t.date() ? t._d["set" + (t._isUTC ? "UTC" : "") + e](n, t.month(), It(n, t.month())) : t._d["set" + (t._isUTC ? "UTC" : "") + e](n)) } function It(t, e) { if (isNaN(t) || isNaN(e)) return NaN; var n = (e % 12 + 12) % 12; return t += (e - n) / 12, 1 === n ? St(t) ? 29 : 28 : 31 - n % 7 % 2 } Mt = Array.prototype.indexOf ? Array.prototype.indexOf : function(t) { var e; for (e = 0; e < this.length; ++e) if (this[e] === t) return e; return -1 }, V("M", ["MM", 2], "Mo", (function() { return this.month() + 1 })), V("MMM", 0, 0, (function(t) { return this.localeData().monthsShort(this, t) })), V("MMMM", 0, 0, (function(t) { return this.localeData().months(this, t) })), B("month", "M"), F("month", 8), ft("M", J), ft("MM", J, W), ft("MMM", (function(t, e) { return e.monthsShortRegex(t) })), ft("MMMM", (function(t, e) { return e.monthsRegex(t) })), pt(["M", "MM"], (function(t, e) { e[bt] = k(t) - 1 })), pt(["MMM", "MMMM"], (function(t, e, n, r) { var i = n._locale.monthsParse(t, r, n._strict); null != i ? e[bt] = i : p(n).invalidMonth = t })); var Lt = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, Bt = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), Ot = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"); function Rt(t, e) { var n; if (!t.isValid()) return t; if ("string" == typeof e) if (/^\d+$/.test(e)) e = k(e); else if (!u(e = t.localeData().monthsParse(e))) return t; return n = Math.min(t.date(), It(t.year(), e)), t._d["set" + (t._isUTC ? "UTC" : "") + "Month"](e, n), t } function Pt(t) { return null != t ? (Rt(this, t), i.updateOffset(this, !0), this) : Ct(this, "Month") } var Ft = ut, qt = ut; function jt() { function t(t, e) { return e.length - t.length } var e, n, r = [], i = [], a = []; for (e = 0; e < 12; e++) n = d([2e3, e]), r.push(this.monthsShort(n, "")), i.push(this.months(n, "")), a.push(this.months(n, "")), a.push(this.monthsShort(n, "")); for (r.sort(t), i.sort(t), a.sort(t), e = 0; e < 12; e++) r[e] = ht(r[e]), i[e] = ht(i[e]); for (e = 0; e < 24; e++) a[e] = ht(a[e]); this._monthsRegex = new RegExp("^(" + a.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + r.join("|") + ")", "i") } function Ut(t) { var e = new Date(Date.UTC.apply(null, arguments)); return t < 100 && 0 <= t && isFinite(e.getUTCFullYear()) && e.setUTCFullYear(t), e } function zt(t, e, n) { var r = 7 + e - n; return -(7 + Ut(t, 0, r).getUTCDay() - e) % 7 + r - 1 } function Yt(t, e, n, r, i) { var a, o, s = 1 + 7 * (e - 1) + (7 + n - r) % 7 + zt(t, r, i); return s <= 0 ? o = At(a = t - 1) + s : s > At(t) ? (a = t + 1, o = s - At(t)) : (a = t, o = s), { year: a, dayOfYear: o } } function Vt(t, e, n) { var r, i, a = zt(t.year(), e, n), o = Math.floor((t.dayOfYear() - a - 1) / 7) + 1; return o < 1 ? r = o + Ht(i = t.year() - 1, e, n) : o > Ht(t.year(), e, n) ? (r = o - Ht(t.year(), e, n), i = t.year() + 1) : (i = t.year(), r = o), { week: r, year: i } } function Ht(t, e, n) { var r = zt(t, e, n), i = zt(t + 1, e, n); return (At(t) - r + i) / 7 } V("w", ["ww", 2], "wo", "week"), V("W", ["WW", 2], "Wo", "isoWeek"), B("week", "w"), B("isoWeek", "W"), F("week", 5), F("isoWeek", 5), ft("w", J), ft("ww", J, W), ft("W", J), ft("WW", J, W), gt(["w", "ww", "W", "WW"], (function(t, e, n, r) { e[r.substr(0, 1)] = k(t) })), V("d", 0, "do", "day"), V("dd", 0, 0, (function(t) { return this.localeData().weekdaysMin(this, t) })), V("ddd", 0, 0, (function(t) { return this.localeData().weekdaysShort(this, t) })), V("dddd", 0, 0, (function(t) { return this.localeData().weekdays(this, t) })), V("e", 0, 0, "weekday"), V("E", 0, 0, "isoWeekday"), B("day", "d"), B("weekday", "e"), B("isoWeekday", "E"), F("day", 11), F("weekday", 11), F("isoWeekday", 11), ft("d", J), ft("e", J), ft("E", J), ft("dd", (function(t, e) { return e.weekdaysMinRegex(t) })), ft("ddd", (function(t, e) { return e.weekdaysShortRegex(t) })), ft("dddd", (function(t, e) { return e.weekdaysRegex(t) })), gt(["dd", "ddd", "dddd"], (function(t, e, n, r) { var i = n._locale.weekdaysParse(t, r, n._strict); null != i ? e.d = i : p(n).invalidWeekday = t })), gt(["d", "e", "E"], (function(t, e, n, r) { e[r] = k(t) })); var Gt = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), $t = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), Wt = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), Kt = ut, Xt = ut, Zt = ut; function Jt() { function t(t, e) { return e.length - t.length } var e, n, r, i, a, o = [], s = [], u = [], c = []; for (e = 0; e < 7; e++) n = d([2e3, 1]).day(e), r = this.weekdaysMin(n, ""), i = this.weekdaysShort(n, ""), a = this.weekdays(n, ""), o.push(r), s.push(i), u.push(a), c.push(r), c.push(i), c.push(a); for (o.sort(t), s.sort(t), u.sort(t), c.sort(t), e = 0; e < 7; e++) s[e] = ht(s[e]), u[e] = ht(u[e]), c[e] = ht(c[e]); this._weekdaysRegex = new RegExp("^(" + c.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + u.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + o.join("|") + ")", "i") } function Qt() { return this.hours() % 12 || 12 } function te(t, e) { V(t, 0, 0, (function() { return this.localeData().meridiem(this.hours(), this.minutes(), e) })) } function ee(t, e) { return e._meridiemParse } V("H", ["HH", 2], 0, "hour"), V("h", ["hh", 2], 0, Qt), V("k", ["kk", 2], 0, (function() { return this.hours() || 24 })), V("hmm", 0, 0, (function() { return "" + Qt.apply(this) + q(this.minutes(), 2) })), V("hmmss", 0, 0, (function() { return "" + Qt.apply(this) + q(this.minutes(), 2) + q(this.seconds(), 2) })), V("Hmm", 0, 0, (function() { return "" + this.hours() + q(this.minutes(), 2) })), V("Hmmss", 0, 0, (function() { return "" + this.hours() + q(this.minutes(), 2) + q(this.seconds(), 2) })), te("a", !0), te("A", !1), B("hour", "h"), F("hour", 13), ft("a", ee), ft("A", ee), ft("H", J), ft("h", J), ft("k", J), ft("HH", J, W), ft("hh", J, W), ft("kk", J, W), ft("hmm", Q), ft("hmmss", tt), ft("Hmm", Q), ft("Hmmss", tt), pt(["H", "HH"], mt), pt(["k", "kk"], (function(t, e, n) { var r = k(t); e[mt] = 24 === r ? 0 : r })), pt(["a", "A"], (function(t, e, n) { n._isPm = n._locale.isPM(t), n._meridiem = t })), pt(["h", "hh"], (function(t, e, n) { e[mt] = k(t), p(n).bigHour = !0 })), pt("hmm", (function(t, e, n) { var r = t.length - 2; e[mt] = k(t.substr(0, r)), e[_t] = k(t.substr(r)), p(n).bigHour = !0 })), pt("hmmss", (function(t, e, n) { var r = t.length - 4, i = t.length - 2; e[mt] = k(t.substr(0, r)), e[_t] = k(t.substr(r, 2)), e[wt] = k(t.substr(i)), p(n).bigHour = !0 })), pt("Hmm", (function(t, e, n) { var r = t.length - 2; e[mt] = k(t.substr(0, r)), e[_t] = k(t.substr(r)) })), pt("Hmmss", (function(t, e, n) { var r = t.length - 4, i = t.length - 2; e[mt] = k(t.substr(0, r)), e[_t] = k(t.substr(r, 2)), e[wt] = k(t.substr(i)) })); var ne, re = Dt("Hours", !0), ie = { calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, longDateFormat: { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, invalidDate: "Invalid date", ordinal: "%d", dayOfMonthOrdinalParse: /\d{1,2}/, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, months: Bt, monthsShort: Ot, week: { dow: 0, doy: 6 }, weekdays: Gt, weekdaysMin: Wt, weekdaysShort: $t, meridiemParse: /[ap]\.?m?\.?/i }, ae = {}, oe = {}; function se(t) { return t ? t.toLowerCase().replace("_", "-") : t } function ue(e) { var r = null; if (!ae[e] && void 0 !== t && t && t.exports) try { r = ne._abbr, n(235)("./" + e), ce(r) } catch (e) {} return ae[e] } function ce(t, e) { var n; return t && ((n = s(e) ? le(t) : fe(t, e)) ? ne = n : "undefined" != typeof console && console.warn && console.warn("Locale " + t + " not found. Did you forget to load it?")), ne._abbr } function fe(t, e) { if (null !== e) { var n, r = ie; if (e.abbr = t, null != ae[t]) D("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), r = ae[t]._config; else if (null != e.parentLocale) if (null != ae[e.parentLocale]) r = ae[e.parentLocale]._config; else { if (null == (n = ue(e.parentLocale))) return oe[e.parentLocale] || (oe[e.parentLocale] = []), oe[e.parentLocale].push({ name: t, config: e }), null; r = n._config } return ae[t] = new I(N(r, e)), oe[t] && oe[t].forEach((function(t) { fe(t.name, t.config) })), ce(t), ae[t] } return delete ae[t], null } function le(t) { var e; if (t && t._locale && t._locale._abbr && (t = t._locale._abbr), !t) return ne; if (!a(t)) { if (e = ue(t)) return e; t = [t] } return function(t) { for (var e, n, r, i, a = 0; a < t.length;) { for (e = (i = se(t[a]).split("-")).length, n = (n = se(t[a + 1])) ? n.split("-") : null; 0 < e;) { if (r = ue(i.slice(0, e).join("-"))) return r; if (n && n.length >= e && E(i, n, !0) >= e - 1) break; e-- } a++ } return ne }(t) } function he(t) { var e, n = t._a; return n && -2 === p(t).overflow && (e = n[bt] < 0 || 11 < n[bt] ? bt : n[vt] < 1 || n[vt] > It(n[yt], n[bt]) ? vt : n[mt] < 0 || 24 < n[mt] || 24 === n[mt] && (0 !== n[_t] || 0 !== n[wt] || 0 !== n[xt]) ? mt : n[_t] < 0 || 59 < n[_t] ? _t : n[wt] < 0 || 59 < n[wt] ? wt : n[xt] < 0 || 999 < n[xt] ? xt : -1, p(t)._overflowDayOfYear && (e < yt || vt < e) && (e = vt), p(t)._overflowWeeks && -1 === e && (e = kt), p(t)._overflowWeekday && -1 === e && (e = Et), p(t).overflow = e), t } function de(t, e, n) { return null != t ? t : null != e ? e : n } function pe(t) { var e, n, r, a, o, s = []; if (!t._d) { var u, c; for (u = t, c = new Date(i.now()), r = u._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()], t._w && null == t._a[vt] && null == t._a[bt] && function(t) { var e, n, r, i, a, o, s, u; if (null != (e = t._w).GG || null != e.W || null != e.E) a = 1, o = 4, n = de(e.GG, t._a[yt], Vt(Te(), 1, 4).year), r = de(e.W, 1), ((i = de(e.E, 1)) < 1 || 7 < i) && (u = !0); else { a = t._locale._week.dow, o = t._locale._week.doy; var c = Vt(Te(), a, o); n = de(e.gg, t._a[yt], c.year), r = de(e.w, c.week), null != e.d ? ((i = e.d) < 0 || 6 < i) && (u = !0) : null != e.e ? (i = e.e + a, (e.e < 0 || 6 < e.e) && (u = !0)) : i = a } r < 1 || r > Ht(n, a, o) ? p(t)._overflowWeeks = !0 : null != u ? p(t)._overflowWeekday = !0 : (s = Yt(n, r, i, a, o), t._a[yt] = s.year, t._dayOfYear = s.dayOfYear) }(t), null != t._dayOfYear && (o = de(t._a[yt], r[yt]), (t._dayOfYear > At(o) || 0 === t._dayOfYear) && (p(t)._overflowDayOfYear = !0), n = Ut(o, 0, t._dayOfYear), t._a[bt] = n.getUTCMonth(), t._a[vt] = n.getUTCDate()), e = 0; e < 3 && null == t._a[e]; ++e) t._a[e] = s[e] = r[e]; for (; e < 7; e++) t._a[e] = s[e] = null == t._a[e] ? 2 === e ? 1 : 0 : t._a[e]; 24 === t._a[mt] && 0 === t._a[_t] && 0 === t._a[wt] && 0 === t._a[xt] && (t._nextDay = !0, t._a[mt] = 0), t._d = (t._useUTC ? Ut : function(t, e, n, r, i, a, o) { var s = new Date(t, e, n, r, i, a, o); return t < 100 && 0 <= t && isFinite(s.getFullYear()) && s.setFullYear(t), s }).apply(null, s), a = t._useUTC ? t._d.getUTCDay() : t._d.getDay(), null != t._tzm && t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm), t._nextDay && (t._a[mt] = 24), t._w && void 0 !== t._w.d && t._w.d !== a && (p(t).weekdayMismatch = !0) } } var ge = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, ye = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, be = /Z|[+-]\d\d(?::?\d\d)?/, ve = [ ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/] ], me = [ ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/] ], _e = /^\/?Date\((\-?\d+)/i; function we(t) { var e, n, r, i, a, o, s = t._i, u = ge.exec(s) || ye.exec(s); if (u) { for (p(t).iso = !0, e = 0, n = ve.length; e < n; e++) if (ve[e][1].exec(u[1])) { i = ve[e][0], r = !1 !== ve[e][2]; break } if (null == i) return void(t._isValid = !1); if (u[3]) { for (e = 0, n = me.length; e < n; e++) if (me[e][1].exec(u[3])) { a = (u[2] || " ") + me[e][0]; break } if (null == a) return void(t._isValid = !1) } if (!r && null != a) return void(t._isValid = !1); if (u[4]) { if (!be.exec(u[4])) return void(t._isValid = !1); o = "Z" } t._f = i + (a || "") + (o || ""), Ae(t) } else t._isValid = !1 } var xe = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, ke = { UT: 0, GMT: 0, EDT: -240, EST: -300, CDT: -300, CST: -360, MDT: -360, MST: -420, PDT: -420, PST: -480 }; function Ee(t) { var e, n, r, i = xe.exec(t._i.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").trim()); if (i) { var a = function(t, e, n, r, i, a) { var o = [function(t) { var e = parseInt(t, 10); return e <= 49 ? 2e3 + e : e <= 999 ? 1900 + e : e }(t), Ot.indexOf(e), parseInt(n, 10), parseInt(r, 10), parseInt(i, 10)]; return a && o.push(parseInt(a, 10)), o }(i[4], i[3], i[2], i[5], i[6], i[7]); if (n = a, r = t, (e = i[1]) && $t.indexOf(e) !== new Date(n[0], n[1], n[2]).getDay() && (p(r).weekdayMismatch = !0, !(r._isValid = !1))) return; t._a = a, t._tzm = function(t, e, n) { if (t) return ke[t]; if (e) return 0; var r = parseInt(n, 10), i = r % 100; return (r - i) / 100 * 60 + i }(i[8], i[9], i[10]), t._d = Ut.apply(null, t._a), t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm), p(t).rfc2822 = !0 } else t._isValid = !1 } function Ae(t) { if (t._f !== i.ISO_8601) if (t._f !== i.RFC_2822) { t._a = [], p(t).empty = !0; var e, n, r, a, o, s, u, c, f = "" + t._i, h = f.length, d = 0; for (r = G(t._f, t._locale).match(j) || [], e = 0; e < r.length; e++) a = r[e], (n = (f.match(lt(a, t)) || [])[0]) && (0 < (o = f.substr(0, f.indexOf(n))).length && p(t).unusedInput.push(o), f = f.slice(f.indexOf(n) + n.length), d += n.length), Y[a] ? (n ? p(t).empty = !1 : p(t).unusedTokens.push(a), s = a, c = t, null != (u = n) && l(dt, s) && dt[s](u, c._a, c, s)) : t._strict && !n && p(t).unusedTokens.push(a); p(t).charsLeftOver = h - d, 0 < f.length && p(t).unusedInput.push(f), t._a[mt] <= 12 && !0 === p(t).bigHour && 0 < t._a[mt] && (p(t).bigHour = void 0), p(t).parsedDateParts = t._a.slice(0), p(t).meridiem = t._meridiem, t._a[mt] = function(t, e, n) { var r; return null == n ? e : null != t.meridiemHour ? t.meridiemHour(e, n) : (null != t.isPM && ((r = t.isPM(n)) && e < 12 && (e += 12), r || 12 !== e || (e = 0)), e) }(t._locale, t._a[mt], t._meridiem), pe(t), he(t) } else Ee(t); else we(t) } function Se(t) { var e, n, r, l, d = t._i, b = t._f; return t._locale = t._locale || le(t._l), null === d || void 0 === b && "" === d ? y({ nullInput: !0 }) : ("string" == typeof d && (t._i = d = t._locale.preparse(d)), w(d) ? new _(he(d)) : (c(d) ? t._d = d : a(b) ? function(t) { var e, n, r, i, a; if (0 === t._f.length) return p(t).invalidFormat = !0, t._d = new Date(NaN); for (i = 0; i < t._f.length; i++) a = 0, e = v({}, t), null != t._useUTC && (e._useUTC = t._useUTC), e._f = t._f[i], Ae(e), g(e) && (a += p(e).charsLeftOver, a += 10 * p(e).unusedTokens.length, p(e).score = a, (null == r || a < r) && (r = a, n = e)); h(t, n || e) }(t) : b ? Ae(t) : s(n = (e = t)._i) ? e._d = new Date(i.now()) : c(n) ? e._d = new Date(n.valueOf()) : "string" == typeof n ? (r = e, null === (l = _e.exec(r._i)) ? (we(r), !1 === r._isValid && (delete r._isValid, Ee(r), !1 === r._isValid && (delete r._isValid, i.createFromInputFallback(r)))) : r._d = new Date(+l[1])) : a(n) ? (e._a = f(n.slice(0), (function(t) { return parseInt(t, 10) })), pe(e)) : o(n) ? function(t) { if (!t._d) { var e = R(t._i); t._a = f([e.year, e.month, e.day || e.date, e.hour, e.minute, e.second, e.millisecond], (function(t) { return t && parseInt(t, 10) })), pe(t) } }(e) : u(n) ? e._d = new Date(n) : i.createFromInputFallback(e), g(t) || (t._d = null), t)) } function Me(t, e, n, r, i) { var s, u = {}; return !0 !== n && !1 !== n || (r = n, n = void 0), (o(t) && function(t) { if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(t).length; var e; for (e in t) if (t.hasOwnProperty(e)) return !1; return !0 }(t) || a(t) && 0 === t.length) && (t = void 0), u._isAMomentObject = !0, u._useUTC = u._isUTC = i, u._l = n, u._i = t, u._f = e, u._strict = r, (s = new _(he(Se(u))))._nextDay && (s.add(1, "d"), s._nextDay = void 0), s } function Te(t, e, n, r) { return Me(t, e, n, r, !1) } i.createFromInputFallback = S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", (function(t) { t._d = new Date(t._i + (t._useUTC ? " UTC" : "")) })), i.ISO_8601 = function() {}, i.RFC_2822 = function() {}; var De = S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", (function() { var t = Te.apply(null, arguments); return this.isValid() && t.isValid() ? t < this ? this : t : y() })), Ce = S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", (function() { var t = Te.apply(null, arguments); return this.isValid() && t.isValid() ? this < t ? this : t : y() })); function Ne(t, e) { var n, r; if (1 === e.length && a(e[0]) && (e = e[0]), !e.length) return Te(); for (n = e[0], r = 1; r < e.length; ++r) e[r].isValid() && !e[r][t](n) || (n = e[r]); return n } var Ie = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; function Le(t) { var e = R(t), n = e.year || 0, r = e.quarter || 0, i = e.month || 0, a = e.week || 0, o = e.day || 0, s = e.hour || 0, u = e.minute || 0, c = e.second || 0, f = e.millisecond || 0; this._isValid = function(t) { for (var e in t) if (-1 === Mt.call(Ie, e) || null != t[e] && isNaN(t[e])) return !1; for (var n = !1, r = 0; r < Ie.length; ++r) if (t[Ie[r]]) { if (n) return !1; parseFloat(t[Ie[r]]) !== k(t[Ie[r]]) && (n = !0) } return !0 }(e), this._milliseconds = +f + 1e3 * c + 6e4 * u + 1e3 * s * 60 * 60, this._days = +o + 7 * a, this._months = +i + 3 * r + 12 * n, this._data = {}, this._locale = le(), this._bubble() } function Be(t) { return t instanceof Le } function Oe(t) { return t < 0 ? -1 * Math.round(-1 * t) : Math.round(t) } function Re(t, e) { V(t, 0, 0, (function() { var t = this.utcOffset(), n = "+"; return t < 0 && (t = -t, n = "-"), n + q(~~(t / 60), 2) + e + q(~~t % 60, 2) })) } Re("Z", ":"), Re("ZZ", ""), ft("Z", st), ft("ZZ", st), pt(["Z", "ZZ"], (function(t, e, n) { n._useUTC = !0, n._tzm = Fe(st, t) })); var Pe = /([\+\-]|\d\d)/gi; function Fe(t, e) { var n = (e || "").match(t); if (null === n) return null; var r = ((n[n.length - 1] || []) + "").match(Pe) || ["-", 0, 0], i = 60 * r[1] + k(r[2]); return 0 === i ? 0 : "+" === r[0] ? i : -i } function qe(t, e) { var n, r; return e._isUTC ? (n = e.clone(), r = (w(t) || c(t) ? t.valueOf() : Te(t).valueOf()) - n.valueOf(), n._d.setTime(n._d.valueOf() + r), i.updateOffset(n, !1), n) : Te(t).local() } function je(t) { return 15 * -Math.round(t._d.getTimezoneOffset() / 15) } function Ue() { return !!this.isValid() && this._isUTC && 0 === this._offset } i.updateOffset = function() {}; var ze = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, Ye = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function Ve(t, e) { var n, r, i, a = t, o = null; return Be(t) ? a = { ms: t._milliseconds, d: t._days, M: t._months } : u(t) ? (a = {}, e ? a[e] = t : a.milliseconds = t) : (o = ze.exec(t)) ? (n = "-" === o[1] ? -1 : 1, a = { y: 0, d: k(o[vt]) * n, h: k(o[mt]) * n, m: k(o[_t]) * n, s: k(o[wt]) * n, ms: k(Oe(1e3 * o[xt])) * n }) : (o = Ye.exec(t)) ? (n = "-" === o[1] ? -1 : (o[1], 1), a = { y: He(o[2], n), M: He(o[3], n), w: He(o[4], n), d: He(o[5], n), h: He(o[6], n), m: He(o[7], n), s: He(o[8], n) }) : null == a ? a = {} : "object" == typeof a && ("from" in a || "to" in a) && (i = function(t, e) { var n; return t.isValid() && e.isValid() ? (e = qe(e, t), t.isBefore(e) ? n = Ge(t, e) : ((n = Ge(e, t)).milliseconds = -n.milliseconds, n.months = -n.months), n) : { milliseconds: 0, months: 0 } }(Te(a.from), Te(a.to)), (a = {}).ms = i.milliseconds, a.M = i.months), r = new Le(a), Be(t) && l(t, "_locale") && (r._locale = t._locale), r } function He(t, e) { var n = t && parseFloat(t.replace(",", ".")); return (isNaN(n) ? 0 : n) * e } function Ge(t, e) { var n = { milliseconds: 0, months: 0 }; return n.months = e.month() - t.month() + 12 * (e.year() - t.year()), t.clone().add(n.months, "M").isAfter(e) && --n.months, n.milliseconds = +e - +t.clone().add(n.months, "M"), n } function $e(t, e) { return function(n, r) { var i; return null === r || isNaN(+r) || (D(e, "moment()." + e + "(period, number) is deprecated. Please use moment()." + e + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), i = n, n = r, r = i), We(this, Ve(n = "string" == typeof n ? +n : n, r), t), this } } function We(t, e, n, r) { var a = e._milliseconds, o = Oe(e._days), s = Oe(e._months); t.isValid() && (r = null == r || r, s && Rt(t, Ct(t, "Month") + s * n), o && Nt(t, "Date", Ct(t, "Date") + o * n), a && t._d.setTime(t._d.valueOf() + a * n), r && i.updateOffset(t, o || s)) } Ve.fn = Le.prototype, Ve.invalid = function() { return Ve(NaN) }; var Ke = $e(1, "add"), Xe = $e(-1, "subtract"); function Ze(t, e) { var n = 12 * (e.year() - t.year()) + (e.month() - t.month()), r = t.clone().add(n, "months"); return -(n + (e - r < 0 ? (e - r) / (r - t.clone().add(n - 1, "months")) : (e - r) / (t.clone().add(n + 1, "months") - r))) || 0 } function Je(t) { var e; return void 0 === t ? this._locale._abbr : (null != (e = le(t)) && (this._locale = e), this) } i.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", i.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; var Qe = S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", (function(t) { return void 0 === t ? this.localeData() : this.locale(t) })); function tn() { return this._locale } function en(t, e) { V(0, [t, t.length], 0, e) } function nn(t, e, n, r, i) { var a; return null == t ? Vt(this, r, i).year : ((a = Ht(t, r, i)) < e && (e = a), function(t, e, n, r, i) { var a = Yt(t, e, n, r, i), o = Ut(a.year, 0, a.dayOfYear); return this.year(o.getUTCFullYear()), this.month(o.getUTCMonth()), this.date(o.getUTCDate()), this }.call(this, t, e, n, r, i)) } V(0, ["gg", 2], 0, (function() { return this.weekYear() % 100 })), V(0, ["GG", 2], 0, (function() { return this.isoWeekYear() % 100 })), en("gggg", "weekYear"), en("ggggg", "weekYear"), en("GGGG", "isoWeekYear"), en("GGGGG", "isoWeekYear"), B("weekYear", "gg"), B("isoWeekYear", "GG"), F("weekYear", 1), F("isoWeekYear", 1), ft("G", at), ft("g", at), ft("GG", J, W), ft("gg", J, W), ft("GGGG", nt, X), ft("gggg", nt, X), ft("GGGGG", rt, Z), ft("ggggg", rt, Z), gt(["gggg", "ggggg", "GGGG", "GGGGG"], (function(t, e, n, r) { e[r.substr(0, 2)] = k(t) })), gt(["gg", "GG"], (function(t, e, n, r) { e[r] = i.parseTwoDigitYear(t) })), V("Q", 0, "Qo", "quarter"), B("quarter", "Q"), F("quarter", 7), ft("Q", $), pt("Q", (function(t, e) { e[bt] = 3 * (k(t) - 1) })), V("D", ["DD", 2], "Do", "date"), B("date", "D"), F("date", 9), ft("D", J), ft("DD", J, W), ft("Do", (function(t, e) { return t ? e._dayOfMonthOrdinalParse || e._ordinalParse : e._dayOfMonthOrdinalParseLenient })), pt(["D", "DD"], vt), pt("Do", (function(t, e) { e[vt] = k(t.match(J)[0]) })); var rn = Dt("Date", !0); V("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), B("dayOfYear", "DDD"), F("dayOfYear", 4), ft("DDD", et), ft("DDDD", K), pt(["DDD", "DDDD"], (function(t, e, n) { n._dayOfYear = k(t) })), V("m", ["mm", 2], 0, "minute"), B("minute", "m"), F("minute", 14), ft("m", J), ft("mm", J, W), pt(["m", "mm"], _t); var an = Dt("Minutes", !1); V("s", ["ss", 2], 0, "second"), B("second", "s"), F("second", 15), ft("s", J), ft("ss", J, W), pt(["s", "ss"], wt); var on, sn = Dt("Seconds", !1); for (V("S", 0, 0, (function() { return ~~(this.millisecond() / 100) })), V(0, ["SS", 2], 0, (function() { return ~~(this.millisecond() / 10) })), V(0, ["SSS", 3], 0, "millisecond"), V(0, ["SSSS", 4], 0, (function() { return 10 * this.millisecond() })), V(0, ["SSSSS", 5], 0, (function() { return 100 * this.millisecond() })), V(0, ["SSSSSS", 6], 0, (function() { return 1e3 * this.millisecond() })), V(0, ["SSSSSSS", 7], 0, (function() { return 1e4 * this.millisecond() })), V(0, ["SSSSSSSS", 8], 0, (function() { return 1e5 * this.millisecond() })), V(0, ["SSSSSSSSS", 9], 0, (function() { return 1e6 * this.millisecond() })), B("millisecond", "ms"), F("millisecond", 16), ft("S", et, $), ft("SS", et, W), ft("SSS", et, K), on = "SSSS"; on.length <= 9; on += "S") ft(on, it); function un(t, e) { e[xt] = k(1e3 * ("0." + t)) } for (on = "S"; on.length <= 9; on += "S") pt(on, un); var cn = Dt("Milliseconds", !1); V("z", 0, 0, "zoneAbbr"), V("zz", 0, 0, "zoneName"); var fn = _.prototype; function ln(t) { return t } fn.add = Ke, fn.calendar = function(t, e) { var n = t || Te(), r = qe(n, this).startOf("day"), a = i.calendarFormat(this, r) || "sameElse", o = e && (C(e[a]) ? e[a].call(this, n) : e[a]); return this.format(o || this.localeData().calendar(a, this, Te(n))) }, fn.clone = function() { return new _(this) }, fn.diff = function(t, e, n) { var r, i, a; if (!this.isValid()) return NaN; if (!(r = qe(t, this)).isValid()) return NaN; switch (i = 6e4 * (r.utcOffset() - this.utcOffset()), e = O(e)) { case "year": a = Ze(this, r) / 12; break; case "month": a = Ze(this, r); break; case "quarter": a = Ze(this, r) / 3; break; case "second": a = (this - r) / 1e3; break; case "minute": a = (this - r) / 6e4; break; case "hour": a = (this - r) / 36e5; break; case "day": a = (this - r - i) / 864e5; break; case "week": a = (this - r - i) / 6048e5; break; default: a = this - r } return n ? a : x(a) }, fn.endOf = function(t) { return void 0 === (t = O(t)) || "millisecond" === t ? this : ("date" === t && (t = "day"), this.startOf(t).add(1, "isoWeek" === t ? "week" : t).subtract(1, "ms")) }, fn.format = function(t) { t || (t = this.isUtc() ? i.defaultFormatUtc : i.defaultFormat); var e = H(this, t); return this.localeData().postformat(e) }, fn.from = function(t, e) { return this.isValid() && (w(t) && t.isValid() || Te(t).isValid()) ? Ve({ to: this, from: t }).locale(this.locale()).humanize(!e) : this.localeData().invalidDate() }, fn.fromNow = function(t) { return this.from(Te(), t) }, fn.to = function(t, e) { return this.isValid() && (w(t) && t.isValid() || Te(t).isValid()) ? Ve({ from: this, to: t }).locale(this.locale()).humanize(!e) : this.localeData().invalidDate() }, fn.toNow = function(t) { return this.to(Te(), t) }, fn.get = function(t) { return C(this[t = O(t)]) ? this[t]() : this }, fn.invalidAt = function() { return p(this).overflow }, fn.isAfter = function(t, e) { var n = w(t) ? t : Te(t); return !(!this.isValid() || !n.isValid()) && ("millisecond" === (e = O(s(e) ? "millisecond" : e)) ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(e).valueOf()) }, fn.isBefore = function(t, e) { var n = w(t) ? t : Te(t); return !(!this.isValid() || !n.isValid()) && ("millisecond" === (e = O(s(e) ? "millisecond" : e)) ? this.valueOf() < n.valueOf() : this.clone().endOf(e).valueOf() < n.valueOf()) }, fn.isBetween = function(t, e, n, r) { return ("(" === (r = r || "()")[0] ? this.isAfter(t, n) : !this.isBefore(t, n)) && (")" === r[1] ? this.isBefore(e, n) : !this.isAfter(e, n)) }, fn.isSame = function(t, e) { var n, r = w(t) ? t : Te(t); return !(!this.isValid() || !r.isValid()) && ("millisecond" === (e = O(e || "millisecond")) ? this.valueOf() === r.valueOf() : (n = r.valueOf(), this.clone().startOf(e).valueOf() <= n && n <= this.clone().endOf(e).valueOf())) }, fn.isSameOrAfter = function(t, e) { return this.isSame(t, e) || this.isAfter(t, e) }, fn.isSameOrBefore = function(t, e) { return this.isSame(t, e) || this.isBefore(t, e) }, fn.isValid = function() { return g(this) }, fn.lang = Qe, fn.locale = Je, fn.localeData = tn, fn.max = Ce, fn.min = De, fn.parsingFlags = function() { return h({}, p(this)) }, fn.set = function(t, e) { if ("object" == typeof t) for (var n = function(t) { var e = []; for (var n in t) e.push({ unit: n, priority: P[n] }); return e.sort((function(t, e) { return t.priority - e.priority })), e }(t = R(t)), r = 0; r < n.length; r++) this[n[r].unit](t[n[r].unit]); else if (C(this[t = O(t)])) return this[t](e); return this }, fn.startOf = function(t) { switch (t = O(t)) { case "year": this.month(0); case "quarter": case "month": this.date(1); case "week": case "isoWeek": case "day": case "date": this.hours(0); case "hour": this.minutes(0); case "minute": this.seconds(0); case "second": this.milliseconds(0) } return "week" === t && this.weekday(0), "isoWeek" === t && this.isoWeekday(1), "quarter" === t && this.month(3 * Math.floor(this.month() / 3)), this }, fn.subtract = Xe, fn.toArray = function() { var t = this; return [t.year(), t.month(), t.date(), t.hour(), t.minute(), t.second(), t.millisecond()] }, fn.toObject = function() { var t = this; return { years: t.year(), months: t.month(), date: t.date(), hours: t.hours(), minutes: t.minutes(), seconds: t.seconds(), milliseconds: t.milliseconds() } }, fn.toDate = function() { return new Date(this.valueOf()) }, fn.toISOString = function(t) { if (!this.isValid()) return null; var e = !0 !== t, n = e ? this.clone().utc() : this; return n.year() < 0 || 9999 < n.year() ? H(n, e ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : C(Date.prototype.toISOString) ? e ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", H(n, "Z")) : H(n, e ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") }, fn.inspect = function() { if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; var t = "moment", e = ""; this.isLocal() || (t = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", e = "Z"); var n = "[" + t + '("]', r = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", i = e + '[")]'; return this.format(n + r + "-MM-DD[T]HH:mm:ss.SSS" + i) }, fn.toJSON = function() { return this.isValid() ? this.toISOString() : null }, fn.toString = function() { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") }, fn.unix = function() { return Math.floor(this.valueOf() / 1e3) }, fn.valueOf = function() { return this._d.valueOf() - 6e4 * (this._offset || 0) }, fn.creationData = function() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict } }, fn.year = Tt, fn.isLeapYear = function() { return St(this.year()) }, fn.weekYear = function(t) { return nn.call(this, t, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) }, fn.isoWeekYear = function(t) { return nn.call(this, t, this.isoWeek(), this.isoWeekday(), 1, 4) }, fn.quarter = fn.quarters = function(t) { return null == t ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (t - 1) + this.month() % 3) }, fn.month = Pt, fn.daysInMonth = function() { return It(this.year(), this.month()) }, fn.week = fn.weeks = function(t) { var e = this.localeData().week(this); return null == t ? e : this.add(7 * (t - e), "d") }, fn.isoWeek = fn.isoWeeks = function(t) { var e = Vt(this, 1, 4).week; return null == t ? e : this.add(7 * (t - e), "d") }, fn.weeksInYear = function() { var t = this.localeData()._week; return Ht(this.year(), t.dow, t.doy) }, fn.isoWeeksInYear = function() { return Ht(this.year(), 1, 4) }, fn.date = rn, fn.day = fn.days = function(t) { if (!this.isValid()) return null != t ? this : NaN; var e, n, r = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); return null != t ? (e = t, n = this.localeData(), t = "string" != typeof e ? e : isNaN(e) ? "number" == typeof(e = n.weekdaysParse(e)) ? e : null : parseInt(e, 10), this.add(t - r, "d")) : r }, fn.weekday = function(t) { if (!this.isValid()) return null != t ? this : NaN; var e = (this.day() + 7 - this.localeData()._week.dow) % 7; return null == t ? e : this.add(t - e, "d") }, fn.isoWeekday = function(t) { if (!this.isValid()) return null != t ? this : NaN; if (null != t) { var e = (n = t, r = this.localeData(), "string" == typeof n ? r.weekdaysParse(n) % 7 || 7 : isNaN(n) ? null : n); return this.day(this.day() % 7 ? e : e - 7) } return this.day() || 7; var n, r }, fn.dayOfYear = function(t) { var e = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; return null == t ? e : this.add(t - e, "d") }, fn.hour = fn.hours = re, fn.minute = fn.minutes = an, fn.second = fn.seconds = sn, fn.millisecond = fn.milliseconds = cn, fn.utcOffset = function(t, e, n) { var r, a = this._offset || 0; if (!this.isValid()) return null != t ? this : NaN; if (null != t) { if ("string" == typeof t) { if (null === (t = Fe(st, t))) return this } else Math.abs(t) < 16 && !n && (t *= 60); return !this._isUTC && e && (r = je(this)), this._offset = t, this._isUTC = !0, null != r && this.add(r, "m"), a !== t && (!e || this._changeInProgress ? We(this, Ve(t - a, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, i.updateOffset(this, !0), this._changeInProgress = null)), this } return this._isUTC ? a : je(this) }, fn.utc = function(t) { return this.utcOffset(0, t) }, fn.local = function(t) { return this._isUTC && (this.utcOffset(0, t), this._isUTC = !1, t && this.subtract(je(this), "m")), this }, fn.parseZone = function() { if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); else if ("string" == typeof this._i) { var t = Fe(ot, this._i); null != t ? this.utcOffset(t) : this.utcOffset(0, !0) } return this }, fn.hasAlignedHourOffset = function(t) { return !!this.isValid() && (t = t ? Te(t).utcOffset() : 0, (this.utcOffset() - t) % 60 == 0) }, fn.isDST = function() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() }, fn.isLocal = function() { return !!this.isValid() && !this._isUTC }, fn.isUtcOffset = function() { return !!this.isValid() && this._isUTC }, fn.isUtc = Ue, fn.isUTC = Ue, fn.zoneAbbr = function() { return this._isUTC ? "UTC" : "" }, fn.zoneName = function() { return this._isUTC ? "Coordinated Universal Time" : "" }, fn.dates = S("dates accessor is deprecated. Use date instead.", rn), fn.months = S("months accessor is deprecated. Use month instead", Pt), fn.years = S("years accessor is deprecated. Use year instead", Tt), fn.zone = S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", (function(t, e) { return null != t ? ("string" != typeof t && (t = -t), this.utcOffset(t, e), this) : -this.utcOffset() })), fn.isDSTShifted = S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", (function() { if (!s(this._isDSTShifted)) return this._isDSTShifted; var t = {}; if (v(t, this), (t = Se(t))._a) { var e = t._isUTC ? d(t._a) : Te(t._a); this._isDSTShifted = this.isValid() && 0 < E(t._a, e.toArray()) } else this._isDSTShifted = !1; return this._isDSTShifted })); var hn = I.prototype; function dn(t, e, n, r) { var i = le(), a = d().set(r, e); return i[n](a, t) } function pn(t, e, n) { if (u(t) && (e = t, t = void 0), t = t || "", null != e) return dn(t, e, n, "month"); var r, i = []; for (r = 0; r < 12; r++) i[r] = dn(t, r, n, "month"); return i } function gn(t, e, n, r) { "boolean" == typeof t ? u(e) && (n = e, e = void 0) : (e = t, t = !1, u(n = e) && (n = e, e = void 0)), e = e || ""; var i, a = le(), o = t ? a._week.dow : 0; if (null != n) return dn(e, (n + o) % 7, r, "day"); var s = []; for (i = 0; i < 7; i++) s[i] = dn(e, (i + o) % 7, r, "day"); return s } hn.calendar = function(t, e, n) { var r = this._calendar[t] || this._calendar.sameElse; return C(r) ? r.call(e, n) : r }, hn.longDateFormat = function(t) { var e = this._longDateFormat[t], n = this._longDateFormat[t.toUpperCase()]; return e || !n ? e : (this._longDateFormat[t] = n.replace(/MMMM|MM|DD|dddd/g, (function(t) { return t.slice(1) })), this._longDateFormat[t]) }, hn.invalidDate = function() { return this._invalidDate }, hn.ordinal = function(t) { return this._ordinal.replace("%d", t) }, hn.preparse = ln, hn.postformat = ln, hn.relativeTime = function(t, e, n, r) { var i = this._relativeTime[n]; return C(i) ? i(t, e, n, r) : i.replace(/%d/i, t) }, hn.pastFuture = function(t, e) { var n = this._relativeTime[0 < t ? "future" : "past"]; return C(n) ? n(e) : n.replace(/%s/i, e) }, hn.set = function(t) { var e, n; for (n in t) C(e = t[n]) ? this[n] = e : this["_" + n] = e; this._config = t, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) }, hn.months = function(t, e) { return t ? a(this._months) ? this._months[t.month()] : this._months[(this._months.isFormat || Lt).test(e) ? "format" : "standalone"][t.month()] : a(this._months) ? this._months : this._months.standalone }, hn.monthsShort = function(t, e) { return t ? a(this._monthsShort) ? this._monthsShort[t.month()] : this._monthsShort[Lt.test(e) ? "format" : "standalone"][t.month()] : a(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone }, hn.monthsParse = function(t, e, n) { var r, i, a; if (this._monthsParseExact) return function(t, e, n) { var r, i, a, o = t.toLocaleLowerCase(); if (!this._monthsParse) for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], r = 0; r < 12; ++r) a = d([2e3, r]), this._shortMonthsParse[r] = this.monthsShort(a, "").toLocaleLowerCase(), this._longMonthsParse[r] = this.months(a, "").toLocaleLowerCase(); return n ? "MMM" === e ? -1 !== (i = Mt.call(this._shortMonthsParse, o)) ? i : null : -1 !== (i = Mt.call(this._longMonthsParse, o)) ? i : null : "MMM" === e ? -1 !== (i = Mt.call(this._shortMonthsParse, o)) ? i : -1 !== (i = Mt.call(this._longMonthsParse, o)) ? i : null : -1 !== (i = Mt.call(this._longMonthsParse, o)) ? i : -1 !== (i = Mt.call(this._shortMonthsParse, o)) ? i : null }.call(this, t, e, n); for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), r = 0; r < 12; r++) { if (i = d([2e3, r]), n && !this._longMonthsParse[r] && (this._longMonthsParse[r] = new RegExp("^" + this.months(i, "").replace(".", "") + "$", "i"), this._shortMonthsParse[r] = new RegExp("^" + this.monthsShort(i, "").replace(".", "") + "$", "i")), n || this._monthsParse[r] || (a = "^" + this.months(i, "") + "|^" + this.monthsShort(i, ""), this._monthsParse[r] = new RegExp(a.replace(".", ""), "i")), n && "MMMM" === e && this._longMonthsParse[r].test(t)) return r; if (n && "MMM" === e && this._shortMonthsParse[r].test(t)) return r; if (!n && this._monthsParse[r].test(t)) return r } }, hn.monthsRegex = function(t) { return this._monthsParseExact ? (l(this, "_monthsRegex") || jt.call(this), t ? this._monthsStrictRegex : this._monthsRegex) : (l(this, "_monthsRegex") || (this._monthsRegex = qt), this._monthsStrictRegex && t ? this._monthsStrictRegex : this._monthsRegex) }, hn.monthsShortRegex = function(t) { return this._monthsParseExact ? (l(this, "_monthsRegex") || jt.call(this), t ? this._monthsShortStrictRegex : this._monthsShortRegex) : (l(this, "_monthsShortRegex") || (this._monthsShortRegex = Ft), this._monthsShortStrictRegex && t ? this._monthsShortStrictRegex : this._monthsShortRegex) }, hn.week = function(t) { return Vt(t, this._week.dow, this._week.doy).week }, hn.firstDayOfYear = function() { return this._week.doy }, hn.firstDayOfWeek = function() { return this._week.dow }, hn.weekdays = function(t, e) { return t ? a(this._weekdays) ? this._weekdays[t.day()] : this._weekdays[this._weekdays.isFormat.test(e) ? "format" : "standalone"][t.day()] : a(this._weekdays) ? this._weekdays : this._weekdays.standalone }, hn.weekdaysMin = function(t) { return t ? this._weekdaysMin[t.day()] : this._weekdaysMin }, hn.weekdaysShort = function(t) { return t ? this._weekdaysShort[t.day()] : this._weekdaysShort }, hn.weekdaysParse = function(t, e, n) { var r, i, a; if (this._weekdaysParseExact) return function(t, e, n) { var r, i, a, o = t.toLocaleLowerCase(); if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], r = 0; r < 7; ++r) a = d([2e3, 1]).day(r), this._minWeekdaysParse[r] = this.weekdaysMin(a, "").toLocaleLowerCase(), this._shortWeekdaysParse[r] = this.weekdaysShort(a, "").toLocaleLowerCase(), this._weekdaysParse[r] = this.weekdays(a, "").toLocaleLowerCase(); return n ? "dddd" === e ? -1 !== (i = Mt.call(this._weekdaysParse, o)) ? i : null : "ddd" === e ? -1 !== (i = Mt.call(this._shortWeekdaysParse, o)) ? i : null : -1 !== (i = Mt.call(this._minWeekdaysParse, o)) ? i : null : "dddd" === e ? -1 !== (i = Mt.call(this._weekdaysParse, o)) ? i : -1 !== (i = Mt.call(this._shortWeekdaysParse, o)) ? i : -1 !== (i = Mt.call(this._minWeekdaysParse, o)) ? i : null : "ddd" === e ? -1 !== (i = Mt.call(this._shortWeekdaysParse, o)) ? i : -1 !== (i = Mt.call(this._weekdaysParse, o)) ? i : -1 !== (i = Mt.call(this._minWeekdaysParse, o)) ? i : null : -1 !== (i = Mt.call(this._minWeekdaysParse, o)) ? i : -1 !== (i = Mt.call(this._weekdaysParse, o)) ? i : -1 !== (i = Mt.call(this._shortWeekdaysParse, o)) ? i : null }.call(this, t, e, n); for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), r = 0; r < 7; r++) { if (i = d([2e3, 1]).day(r), n && !this._fullWeekdaysParse[r] && (this._fullWeekdaysParse[r] = new RegExp("^" + this.weekdays(i, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[r] = new RegExp("^" + this.weekdaysShort(i, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[r] = new RegExp("^" + this.weekdaysMin(i, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[r] || (a = "^" + this.weekdays(i, "") + "|^" + this.weekdaysShort(i, "") + "|^" + this.weekdaysMin(i, ""), this._weekdaysParse[r] = new RegExp(a.replace(".", ""), "i")), n && "dddd" === e && this._fullWeekdaysParse[r].test(t)) return r; if (n && "ddd" === e && this._shortWeekdaysParse[r].test(t)) return r; if (n && "dd" === e && this._minWeekdaysParse[r].test(t)) return r; if (!n && this._weekdaysParse[r].test(t)) return r } }, hn.weekdaysRegex = function(t) { return this._weekdaysParseExact ? (l(this, "_weekdaysRegex") || Jt.call(this), t ? this._weekdaysStrictRegex : this._weekdaysRegex) : (l(this, "_weekdaysRegex") || (this._weekdaysRegex = Kt), this._weekdaysStrictRegex && t ? this._weekdaysStrictRegex : this._weekdaysRegex) }, hn.weekdaysShortRegex = function(t) { return this._weekdaysParseExact ? (l(this, "_weekdaysRegex") || Jt.call(this), t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (l(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = Xt), this._weekdaysShortStrictRegex && t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) }, hn.weekdaysMinRegex = function(t) { return this._weekdaysParseExact ? (l(this, "_weekdaysRegex") || Jt.call(this), t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (l(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Zt), this._weekdaysMinStrictRegex && t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) }, hn.isPM = function(t) { return "p" === (t + "").toLowerCase().charAt(0) }, hn.meridiem = function(t, e, n) { return 11 < t ? n ? "pm" : "PM" : n ? "am" : "AM" }, ce("en", { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function(t) { var e = t % 10; return t + (1 === k(t % 100 / 10) ? "th" : 1 === e ? "st" : 2 === e ? "nd" : 3 === e ? "rd" : "th") } }), i.lang = S("moment.lang is deprecated. Use moment.locale instead.", ce), i.langData = S("moment.langData is deprecated. Use moment.localeData instead.", le); var yn = Math.abs; function bn(t, e, n, r) { var i = Ve(e, n); return t._milliseconds += r * i._milliseconds, t._days += r * i._days, t._months += r * i._months, t._bubble() } function vn(t) { return t < 0 ? Math.floor(t) : Math.ceil(t) } function mn(t) { return 4800 * t / 146097 } function _n(t) { return 146097 * t / 4800 } function wn(t) { return function() { return this.as(t) } } var xn = wn("ms"), kn = wn("s"), En = wn("m"), An = wn("h"), Sn = wn("d"), Mn = wn("w"), Tn = wn("M"), Dn = wn("y"); function Cn(t) { return function() { return this.isValid() ? this._data[t] : NaN } } var Nn = Cn("milliseconds"), In = Cn("seconds"), Ln = Cn("minutes"), Bn = Cn("hours"), On = Cn("days"), Rn = Cn("months"), Pn = Cn("years"), Fn = Math.round, qn = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 }, jn = Math.abs; function Un(t) { return (0 < t) - (t < 0) || +t } function zn() { if (!this.isValid()) return this.localeData().invalidDate(); var t, e, n = jn(this._milliseconds) / 1e3, r = jn(this._days), i = jn(this._months); e = x((t = x(n / 60)) / 60), n %= 60, t %= 60; var a = x(i / 12), o = i %= 12, s = r, u = e, c = t, f = n ? n.toFixed(3).replace(/\.?0+$/, "") : "", l = this.asSeconds(); if (!l) return "P0D"; var h = l < 0 ? "-" : "", d = Un(this._months) !== Un(l) ? "-" : "", p = Un(this._days) !== Un(l) ? "-" : "", g = Un(this._milliseconds) !== Un(l) ? "-" : ""; return h + "P" + (a ? d + a + "Y" : "") + (o ? d + o + "M" : "") + (s ? p + s + "D" : "") + (u || c || f ? "T" : "") + (u ? g + u + "H" : "") + (c ? g + c + "M" : "") + (f ? g + f + "S" : "") } var Yn = Le.prototype; return Yn.isValid = function() { return this._isValid }, Yn.abs = function() { var t = this._data; return this._milliseconds = yn(this._milliseconds), this._days = yn(this._days), this._months = yn(this._months), t.milliseconds = yn(t.milliseconds), t.seconds = yn(t.seconds), t.minutes = yn(t.minutes), t.hours = yn(t.hours), t.months = yn(t.months), t.years = yn(t.years), this }, Yn.add = function(t, e) { return bn(this, t, e, 1) }, Yn.subtract = function(t, e) { return bn(this, t, e, -1) }, Yn.as = function(t) { if (!this.isValid()) return NaN; var e, n, r = this._milliseconds; if ("month" === (t = O(t)) || "year" === t) return e = this._days + r / 864e5, n = this._months + mn(e), "month" === t ? n : n / 12; switch (e = this._days + Math.round(_n(this._months)), t) { case "week": return e / 7 + r / 6048e5; case "day": return e + r / 864e5; case "hour": return 24 * e + r / 36e5; case "minute": return 1440 * e + r / 6e4; case "second": return 86400 * e + r / 1e3; case "millisecond": return Math.floor(864e5 * e) + r; default: throw new Error("Unknown unit " + t) } }, Yn.asMilliseconds = xn, Yn.asSeconds = kn, Yn.asMinutes = En, Yn.asHours = An, Yn.asDays = Sn, Yn.asWeeks = Mn, Yn.asMonths = Tn, Yn.asYears = Dn, Yn.valueOf = function() { return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * k(this._months / 12) : NaN }, Yn._bubble = function() { var t, e, n, r, i, a = this._milliseconds, o = this._days, s = this._months, u = this._data; return 0 <= a && 0 <= o && 0 <= s || a <= 0 && o <= 0 && s <= 0 || (a += 864e5 * vn(_n(s) + o), s = o = 0), u.milliseconds = a % 1e3, t = x(a / 1e3), u.seconds = t % 60, e = x(t / 60), u.minutes = e % 60, n = x(e / 60), u.hours = n % 24, s += i = x(mn(o += x(n / 24))), o -= vn(_n(i)), r = x(s / 12), s %= 12, u.days = o, u.months = s, u.years = r, this }, Yn.clone = function() { return Ve(this) }, Yn.get = function(t) { return t = O(t), this.isValid() ? this[t + "s"]() : NaN }, Yn.milliseconds = Nn, Yn.seconds = In, Yn.minutes = Ln, Yn.hours = Bn, Yn.days = On, Yn.weeks = function() { return x(this.days() / 7) }, Yn.months = Rn, Yn.years = Pn, Yn.humanize = function(t) { if (!this.isValid()) return this.localeData().invalidDate(); var e, n, r, i, a, o, s, u, c, f, l = this.localeData(), h = (e = !t, n = l, r = Ve(this).abs(), i = Fn(r.as("s")), a = Fn(r.as("m")), o = Fn(r.as("h")), s = Fn(r.as("d")), u = Fn(r.as("M")), c = Fn(r.as("y")), (f = i <= qn.ss && ["s", i] || i < qn.s && ["ss", i] || a <= 1 && ["m"] || a < qn.m && ["mm", a] || o <= 1 && ["h"] || o < qn.h && ["hh", o] || s <= 1 && ["d"] || s < qn.d && ["dd", s] || u <= 1 && ["M"] || u < qn.M && ["MM", u] || c <= 1 && ["y"] || ["yy", c])[2] = e, f[3] = 0 < +this, f[4] = n, function(t, e, n, r, i) { return i.relativeTime(e || 1, !!n, t, r) }.apply(null, f)); return t && (h = l.pastFuture(+this, h)), l.postformat(h) }, Yn.toISOString = zn, Yn.toString = zn, Yn.toJSON = zn, Yn.locale = Je, Yn.localeData = tn, Yn.toIsoString = S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", zn), Yn.lang = Qe, V("X", 0, 0, "unix"), V("x", 0, 0, "valueOf"), ft("x", at), ft("X", /[+-]?\d+(\.\d{1,3})?/), pt("X", (function(t, e, n) { n._d = new Date(1e3 * parseFloat(t, 10)) })), pt("x", (function(t, e, n) { n._d = new Date(k(t)) })), i.version = "2.22.1", e = Te, i.fn = fn, i.min = function() { return Ne("isBefore", [].slice.call(arguments, 0)) }, i.max = function() { return Ne("isAfter", [].slice.call(arguments, 0)) }, i.now = function() { return Date.now ? Date.now() : +new Date }, i.utc = d, i.unix = function(t) { return Te(1e3 * t) }, i.months = function(t, e) { return pn(t, e, "months") }, i.isDate = c, i.locale = ce, i.invalid = y, i.duration = Ve, i.isMoment = w, i.weekdays = function(t, e, n) { return gn(t, e, n, "weekdays") }, i.parseZone = function() { return Te.apply(null, arguments).parseZone() }, i.localeData = le, i.isDuration = Be, i.monthsShort = function(t, e) { return pn(t, e, "monthsShort") }, i.weekdaysMin = function(t, e, n) { return gn(t, e, n, "weekdaysMin") }, i.defineLocale = fe, i.updateLocale = function(t, e) { if (null != e) { var n, r, i = ie; null != (r = ue(t)) && (i = r._config), (n = new I(e = N(i, e))).parentLocale = ae[t], ae[t] = n, ce(t) } else null != ae[t] && (null != ae[t].parentLocale ? ae[t] = ae[t].parentLocale : null != ae[t] && delete ae[t]); return ae[t] }, i.locales = function() { return M(ae) }, i.weekdaysShort = function(t, e, n) { return gn(t, e, n, "weekdaysShort") }, i.normalizeUnits = O, i.relativeTimeRounding = function(t) { return void 0 === t ? Fn : "function" == typeof t && (Fn = t, !0) }, i.relativeTimeThreshold = function(t, e) { return void 0 !== qn[t] && (void 0 === e ? qn[t] : (qn[t] = e, "s" === t && (qn.ss = e - 1), !0)) }, i.calendarFormat = function(t, e) { var n = t.diff(e, "days", !0); return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" }, i.prototype = fn, i.HTML5_FMT = { DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", DATE: "YYYY-MM-DD", TIME: "HH:mm", TIME_SECONDS: "HH:mm:ss", TIME_MS: "HH:mm:ss.SSS", WEEK: "YYYY-[W]WW", MONTH: "YYYY-MM" }, i }() }).call(this, n(9)(t)) }, function(t, e, n) { var r = n(37), i = n(93); t.exports = function(t) { return null != t && i(t.length) && !r(t) } }, function(t, e, n) { var r = n(293), i = n(303), a = n(34), o = n(6), s = n(310); t.exports = function(t) { return "function" == typeof t ? t : null == t ? a : "object" == typeof t ? o(t) ? i(t[0], t[1]) : r(t) : s(t) } }, function(t, e, n) { var r = n(236); t.exports = { Graph: r.Graph, json: n(338), alg: n(339), version: r.version } }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [6, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20], n = [1, 9], r = [1, 10], i = [1, 11], a = [1, 12], o = [1, 13], s = [1, 14], u = [1, 16], c = [1, 17], f = { trace: function() {}, yy: {}, symbols_: { error: 2, start: 3, gantt: 4, document: 5, EOF: 6, line: 7, SPACE: 8, statement: 9, NL: 10, dateFormat: 11, inclusiveEndDates: 12, axisFormat: 13, excludes: 14, title: 15, section: 16, clickStatement: 17, taskTxt: 18, taskData: 19, click: 20, callbackname: 21, callbackargs: 22, href: 23, clickStatementDebug: 24, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 11: "dateFormat", 12: "inclusiveEndDates", 13: "axisFormat", 14: "excludes", 15: "title", 16: "section", 18: "taskTxt", 19: "taskData", 20: "click", 21: "callbackname", 22: "callbackargs", 23: "href" }, productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [17, 2], [17, 3], [17, 3], [17, 4], [17, 3], [17, 4], [17, 2], [24, 2], [24, 3], [24, 3], [24, 4], [24, 3], [24, 4], [24, 2] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 1: return a[s - 1]; case 2: this.$ = []; break; case 3: a[s - 1].push(a[s]), this.$ = a[s - 1]; break; case 4: case 5: this.$ = a[s]; break; case 6: case 7: this.$ = []; break; case 8: r.setDateFormat(a[s].substr(11)), this.$ = a[s].substr(11); break; case 9: r.enableInclusiveEndDates(), this.$ = a[s].substr(18); break; case 10: r.setAxisFormat(a[s].substr(11)), this.$ = a[s].substr(11); break; case 11: r.setExcludes(a[s].substr(9)), this.$ = a[s].substr(9); break; case 12: r.setTitle(a[s].substr(6)), this.$ = a[s].substr(6); break; case 13: r.addSection(a[s].substr(8)), this.$ = a[s].substr(8); break; case 15: r.addTask(a[s - 1], a[s]), this.$ = "task"; break; case 16: this.$ = a[s - 1], r.setClickEvent(a[s - 1], a[s], null); break; case 17: this.$ = a[s - 2], r.setClickEvent(a[s - 2], a[s - 1], a[s]); break; case 18: this.$ = a[s - 2], r.setClickEvent(a[s - 2], a[s - 1], null), r.setLink(a[s - 2], a[s]); break; case 19: this.$ = a[s - 3], r.setClickEvent(a[s - 3], a[s - 2], a[s - 1]), r.setLink(a[s - 3], a[s]); break; case 20: this.$ = a[s - 2], r.setClickEvent(a[s - 2], a[s], null), r.setLink(a[s - 2], a[s - 1]); break; case 21: this.$ = a[s - 3], r.setClickEvent(a[s - 3], a[s - 1], a[s]), r.setLink(a[s - 3], a[s - 2]); break; case 22: this.$ = a[s - 1], r.setLink(a[s - 1], a[s]); break; case 23: case 29: this.$ = a[s - 1] + " " + a[s]; break; case 24: case 25: case 27: this.$ = a[s - 2] + " " + a[s - 1] + " " + a[s]; break; case 26: case 28: this.$ = a[s - 3] + " " + a[s - 2] + " " + a[s - 1] + " " + a[s] } }, table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: n, 12: r, 13: i, 14: a, 15: o, 16: s, 17: 15, 18: u, 20: c }, t(e, [2, 7], { 1: [2, 1] }), t(e, [2, 3]), { 9: 18, 11: n, 12: r, 13: i, 14: a, 15: o, 16: s, 17: 15, 18: u, 20: c }, t(e, [2, 5]), t(e, [2, 6]), t(e, [2, 8]), t(e, [2, 9]), t(e, [2, 10]), t(e, [2, 11]), t(e, [2, 12]), t(e, [2, 13]), t(e, [2, 14]), { 19: [1, 19] }, { 21: [1, 20], 23: [1, 21] }, t(e, [2, 4]), t(e, [2, 15]), t(e, [2, 16], { 22: [1, 22], 23: [1, 23] }), t(e, [2, 22], { 21: [1, 24] }), t(e, [2, 17], { 23: [1, 25] }), t(e, [2, 18]), t(e, [2, 20], { 22: [1, 26] }), t(e, [2, 19]), t(e, [2, 21])], defaultActions: {}, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, l = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: { "case-insensitive": !0 }, performAction: function(t, e, n, r) { switch (n) { case 0: return 10; case 1: case 2: case 3: break; case 4: this.begin("href"); break; case 5: this.popState(); break; case 6: return 23; case 7: this.begin("callbackname"); break; case 8: this.popState(); break; case 9: this.popState(), this.begin("callbackargs"); break; case 10: return 21; case 11: this.popState(); break; case 12: return 22; case 13: this.begin("click"); break; case 14: this.popState(); break; case 15: return 20; case 16: return 4; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; case 21: return "date"; case 22: return 15; case 23: return 16; case 24: return 18; case 25: return 19; case 26: return ":"; case 27: return 6; case 28: return "INVALID" } }, rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], conditions: { callbackargs: { rules: [11, 12], inclusive: !1 }, callbackname: { rules: [8, 9, 10], inclusive: !1 }, href: { rules: [5, 6], inclusive: !1 }, click: { rules: [14, 15], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 7, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], inclusive: !0 } } }; function h() { this.yy = {} } return f.lexer = l, h.prototype = f, f.Parser = h, new h }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e, n) { var r = n(134), i = n(95), a = n(23); t.exports = function(t) { return a(t) ? r(t) : i(t) } }, function(t, e) {}, function(t, e, n) { (function(t) { function n(t, e) { for (var n = 0, r = t.length - 1; r >= 0; r--) { var i = t[r]; "." === i ? t.splice(r, 1) : ".." === i ? (t.splice(r, 1), n++) : n && (t.splice(r, 1), n--) } if (e) for (; n--; n) t.unshift(".."); return t } function r(t, e) { if (t.filter) return t.filter(e); for (var n = [], r = 0; r < t.length; r++) e(t[r], r, t) && n.push(t[r]); return n } e.resolve = function() { for (var e = "", i = !1, a = arguments.length - 1; a >= -1 && !i; a--) { var o = a >= 0 ? arguments[a] : t.cwd(); if ("string" != typeof o) throw new TypeError("Arguments to path.resolve must be strings"); o && (e = o + "/" + e, i = "/" === o.charAt(0)) } return (i ? "/" : "") + (e = n(r(e.split("/"), (function(t) { return !!t })), !i).join("/")) || "." }, e.normalize = function(t) { var a = e.isAbsolute(t), o = "/" === i(t, -1); return (t = n(r(t.split("/"), (function(t) { return !!t })), !a).join("/")) || a || (t = "."), t && o && (t += "/"), (a ? "/" : "") + t }, e.isAbsolute = function(t) { return "/" === t.charAt(0) }, e.join = function() { var t = Array.prototype.slice.call(arguments, 0); return e.normalize(r(t, (function(t, e) { if ("string" != typeof t) throw new TypeError("Arguments to path.join must be strings"); return t })).join("/")) }, e.relative = function(t, n) { function r(t) { for (var e = 0; e < t.length && "" === t[e]; e++); for (var n = t.length - 1; n >= 0 && "" === t[n]; n--); return e > n ? [] : t.slice(e, n - e + 1) } t = e.resolve(t).substr(1), n = e.resolve(n).substr(1); for (var i = r(t.split("/")), a = r(n.split("/")), o = Math.min(i.length, a.length), s = o, u = 0; u < o; u++) if (i[u] !== a[u]) { s = u; break } var c = []; for (u = s; u < i.length; u++) c.push(".."); return (c = c.concat(a.slice(s))).join("/") }, e.sep = "/", e.delimiter = ":", e.dirname = function(t) { if ("string" != typeof t && (t += ""), 0 === t.length) return "."; for (var e = t.charCodeAt(0), n = 47 === e, r = -1, i = !0, a = t.length - 1; a >= 1; --a) if (47 === (e = t.charCodeAt(a))) { if (!i) { r = a; break } } else i = !1; return -1 === r ? n ? "/" : "." : n && 1 === r ? "/" : t.slice(0, r) }, e.basename = function(t, e) { var n = function(t) { "string" != typeof t && (t += ""); var e, n = 0, r = -1, i = !0; for (e = t.length - 1; e >= 0; --e) if (47 === t.charCodeAt(e)) { if (!i) { n = e + 1; break } } else -1 === r && (i = !1, r = e + 1); return -1 === r ? "" : t.slice(n, r) }(t); return e && n.substr(-1 * e.length) === e && (n = n.substr(0, n.length - e.length)), n }, e.extname = function(t) { "string" != typeof t && (t += ""); for (var e = -1, n = 0, r = -1, i = !0, a = 0, o = t.length - 1; o >= 0; --o) { var s = t.charCodeAt(o); if (47 !== s) - 1 === r && (i = !1, r = o + 1), 46 === s ? -1 === e ? e = o : 1 !== a && (a = 1) : -1 !== e && (a = -1); else if (!i) { n = o + 1; break } } return -1 === e || -1 === r || 0 === a || 1 === a && e === r - 1 && e === n + 1 ? "" : t.slice(e, r) }; var i = "b" === "ab".substr(-1) ? function(t, e, n) { return t.substr(e, n) } : function(t, e, n) { return e < 0 && (e = t.length + e), t.substr(e, n) } }).call(this, n(7)) }, function(t, e, n) { var r; if (!r) try { r = n(0) } catch (t) {} r || (r = window.d3), t.exports = r }, function(t, e, n) { var r = n(3).Buffer, i = n(112).Transform, a = n(117).StringDecoder; function o(t) { i.call(this), this.hashMode = "string" == typeof t, this.hashMode ? this[t] = this._finalOrDigest : this.final = this._finalOrDigest, this._final && (this.__final = this._final, this._final = null), this._decoder = null, this._encoding = null } n(2)(o, i), o.prototype.update = function(t, e, n) { "string" == typeof t && (t = r.from(t, e)); var i = this._update(t); return this.hashMode ? this : (n && (i = this._toString(i, n)), i) }, o.prototype.setAutoPadding = function() {}, o.prototype.getAuthTag = function() { throw new Error("trying to get auth tag in unsupported state") }, o.prototype.setAuthTag = function() { throw new Error("trying to set auth tag in unsupported state") }, o.prototype.setAAD = function() { throw new Error("trying to set aad in unsupported state") }, o.prototype._transform = function(t, e, n) { var r; try { this.hashMode ? this._update(t) : this.push(this._update(t)) } catch (t) { r = t } finally { n(r) } }, o.prototype._flush = function(t) { var e; try { this.push(this.__final()) } catch (t) { e = t } t(e) }, o.prototype._finalOrDigest = function(t) { var e = this.__final() || r.alloc(0); return t && (e = this._toString(e, t, !0)), e }, o.prototype._toString = function(t, e, n) { if (this._decoder || (this._decoder = new a(e), this._encoding = e), this._encoding !== e) throw new Error("can't switch encodings"); var r = this._decoder.write(t); return n && (r += this._decoder.end()), r }, t.exports = o }, function(t, e, n) { var r = n(248), i = n(253); t.exports = function(t, e) { var n = i(t, e); return r(n) ? n : void 0 } }, function(t, e, n) { var r = n(38), i = n(249), a = n(250), o = "[object Null]", s = "[object Undefined]", u = r ? r.toStringTag : void 0; t.exports = function(t) { return null == t ? void 0 === t ? s : o : u && u in Object(t) ? i(t) : a(t) } }, function(t, e) { t.exports = function(t) { return t } }, function(t, e, n) { "use strict"; var r = n(78), i = Object.keys || function(t) { var e = []; for (var n in t) e.push(n); return e }; t.exports = l; var a = n(54); a.inherits = n(2); var o = n(193), s = n(116); a.inherits(l, o); for (var u = i(s.prototype), c = 0; c < u.length; c++) { var f = u[c]; l.prototype[f] || (l.prototype[f] = s.prototype[f]) } function l(t) { if (!(this instanceof l)) return new l(t); o.call(this, t), s.call(this, t), t && !1 === t.readable && (this.readable = !1), t && !1 === t.writable && (this.writable = !1), this.allowHalfOpen = !0, t && !1 === t.allowHalfOpen && (this.allowHalfOpen = !1), this.once("end", h) } function h() { this.allowHalfOpen || this._writableState.ended || r.nextTick(d, this) } function d(t) { t.end() } Object.defineProperty(l.prototype, "writableHighWaterMark", { enumerable: !1, get: function() { return this._writableState.highWaterMark } }), Object.defineProperty(l.prototype, "destroyed", { get: function() { return void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed && this._writableState.destroyed) }, set: function(t) { void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = t, this._writableState.destroyed = t) } }), l.prototype._destroy = function(t, e) { this.push(null), this.end(), r.nextTick(e, t) } }, function(t, e) { t.exports = function(t, e) { return t === e || t != t && e != e } }, function(t, e, n) { var r = n(33), i = n(14), a = "[object AsyncFunction]", o = "[object Function]", s = "[object GeneratorFunction]", u = "[object Proxy]"; t.exports = function(t) { if (!i(t)) return !1; var e = r(t); return e == o || e == s || e == a || e == u } }, function(t, e, n) { var r = n(18).Symbol; t.exports = r }, function(t, e, n) { (function(t) { var r = n(18), i = n(269), a = e && !e.nodeType && e, o = a && "object" == typeof t && t && !t.nodeType && t, s = o && o.exports === a ? r.Buffer : void 0, u = (s ? s.isBuffer : void 0) || i; t.exports = u }).call(this, n(9)(t)) }, function(t, e, n) { var r = n(134), i = n(273), a = n(23); t.exports = function(t) { return a(t) ? r(t, !0) : i(t) } }, function(t, e, n) { var r = n(278), i = n(90), a = n(279), o = n(143), s = n(280), u = n(33), c = n(132), f = c(r), l = c(i), h = c(a), d = c(o), p = c(s), g = u; (r && "[object DataView]" != g(new r(new ArrayBuffer(1))) || i && "[object Map]" != g(new i) || a && "[object Promise]" != g(a.resolve()) || o && "[object Set]" != g(new o) || s && "[object WeakMap]" != g(new s)) && (g = function(t) { var e = u(t), n = "[object Object]" == e ? t.constructor : void 0, r = n ? c(n) : ""; if (r) switch (r) { case f: return "[object DataView]"; case l: return "[object Map]"; case h: return "[object Promise]"; case d: return "[object Set]"; case p: return "[object WeakMap]" } return e }), t.exports = g }, function(t, e, n) { var r = n(33), i = n(20), a = "[object Symbol]"; t.exports = function(t) { return "symbol" == typeof t || i(t) && r(t) == a } }, function(t, e, n) { var r; try { r = { defaults: n(176), each: n(100), isFunction: n(37), isPlainObject: n(180), pick: n(183), has: n(106), range: n(184), uniqueId: n(185) } } catch (t) {} r || (r = window._), t.exports = r }, function(t, e, n) { "use strict"; (function(e, r) { var i = 65536, a = 4294967295; var o = n(3).Buffer, s = e.crypto || e.msCrypto; s && s.getRandomValues ? t.exports = function(t, e) { if (t > a) throw new RangeError("requested too many random bytes"); var n = o.allocUnsafe(t); if (t > 0) if (t > i) for (var u = 0; u < t; u += i) s.getRandomValues(n.slice(u, u + i)); else s.getRandomValues(n); if ("function" == typeof e) return r.nextTick((function() { e(null, n) })); return n } : t.exports = function() { throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11") } }).call(this, n(12), n(7)) }, function(t, e, n) { var r = n(3).Buffer; function i(t, e) { this._block = r.alloc(t), this._finalSize = e, this._blockSize = t, this._len = 0 } i.prototype.update = function(t, e) { "string" == typeof t && (e = e || "utf8", t = r.from(t, e)); for (var n = this._block, i = this._blockSize, a = t.length, o = this._len, s = 0; s < a;) { for (var u = o % i, c = Math.min(a - s, i - u), f = 0; f < c; f++) n[u + f] = t[s + f]; s += c, (o += c) % i == 0 && this._update(n) } return this._len += a, this }, i.prototype.digest = function(t) { var e = this._len % this._blockSize; this._block[e] = 128, this._block.fill(0, e + 1), e >= this._finalSize && (this._update(this._block), this._block.fill(0)); var n = 8 * this._len; if (n <= 4294967295) this._block.writeUInt32BE(n, this._blockSize - 4); else { var r = (4294967295 & n) >>> 0, i = (n - r) / 4294967296; this._block.writeUInt32BE(i, this._blockSize - 8), this._block.writeUInt32BE(r, this._blockSize - 4) } this._update(this._block); var a = this._hash(); return t ? a.toString(t) : a }, i.prototype._update = function() { throw new Error("_update must be implemented by subclass") }, t.exports = i }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [1, 13], n = [1, 16], r = [1, 14], i = [1, 15], a = [1, 17], o = [1, 18], s = [1, 20], u = [1, 21], c = [1, 22], f = [6, 8], l = [1, 31], h = [1, 32], d = [1, 33], p = [1, 34], g = [1, 35], y = [1, 36], b = [6, 8, 14, 20, 28, 31, 32, 33, 34, 35, 36], v = [6, 8, 12, 14, 20, 24, 28, 31, 32, 33, 34, 35, 36, 52, 53, 54], m = [28, 52, 53, 54], _ = [28, 35, 36, 52, 53, 54], w = [28, 31, 32, 33, 34, 52, 53, 54], x = [6, 8, 14], k = [1, 59], E = { trace: function() {}, yy: {}, symbols_: { error: 2, mermaidDoc: 3, graphConfig: 4, CLASS_DIAGRAM: 5, NEWLINE: 6, statements: 7, EOF: 8, statement: 9, className: 10, alphaNumToken: 11, GENERICTYPE: 12, relationStatement: 13, LABEL: 14, classStatement: 15, methodStatement: 16, annotationStatement: 17, clickStatement: 18, CLASS: 19, STRUCT_START: 20, members: 21, STRUCT_STOP: 22, ANNOTATION_START: 23, ANNOTATION_END: 24, MEMBER: 25, SEPARATOR: 26, relation: 27, STR: 28, relationType: 29, lineType: 30, AGGREGATION: 31, EXTENSION: 32, COMPOSITION: 33, DEPENDENCY: 34, LINE: 35, DOTTED_LINE: 36, CALLBACK: 37, LINK: 38, commentToken: 39, textToken: 40, graphCodeTokens: 41, textNoTagsToken: 42, TAGSTART: 43, TAGEND: 44, "==": 45, "--": 46, PCT: 47, DEFAULT: 48, SPACE: 49, MINUS: 50, keywords: 51, UNICODE_TEXT: 52, NUM: 53, ALPHA: 54, $accept: 0, $end: 1 }, terminals_: { 2: "error", 5: "CLASS_DIAGRAM", 6: "NEWLINE", 8: "EOF", 12: "GENERICTYPE", 14: "LABEL", 19: "CLASS", 20: "STRUCT_START", 22: "STRUCT_STOP", 23: "ANNOTATION_START", 24: "ANNOTATION_END", 25: "MEMBER", 26: "SEPARATOR", 28: "STR", 31: "AGGREGATION", 32: "EXTENSION", 33: "COMPOSITION", 34: "DEPENDENCY", 35: "LINE", 36: "DOTTED_LINE", 37: "CALLBACK", 38: "LINK", 41: "graphCodeTokens", 43: "TAGSTART", 44: "TAGEND", 45: "==", 46: "--", 47: "PCT", 48: "DEFAULT", 49: "SPACE", 50: "MINUS", 51: "keywords", 52: "UNICODE_TEXT", 53: "NUM", 54: "ALPHA" }, productions_: [0, [3, 1], [4, 4], [7, 1], [7, 2], [7, 3], [10, 2], [10, 1], [10, 3], [10, 2], [9, 1], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [15, 2], [15, 5], [17, 4], [21, 1], [21, 2], [16, 1], [16, 2], [16, 1], [16, 1], [13, 3], [13, 4], [13, 4], [13, 5], [27, 3], [27, 2], [27, 2], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [30, 1], [30, 1], [18, 3], [18, 4], [18, 3], [18, 4], [39, 1], [39, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [42, 1], [42, 1], [42, 1], [42, 1], [11, 1], [11, 1], [11, 1] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 6: this.$ = a[s - 1] + a[s]; break; case 7: this.$ = a[s]; break; case 8: this.$ = a[s - 2] + "~" + a[s - 1] + a[s]; break; case 9: this.$ = a[s - 1] + "~" + a[s]; break; case 10: r.addRelation(a[s]); break; case 11: a[s - 1].title = r.cleanupLabel(a[s]), r.addRelation(a[s - 1]); break; case 16: r.addClass(a[s]); break; case 17: r.addClass(a[s - 3]), r.addMembers(a[s - 3], a[s - 1]); break; case 18: r.addAnnotation(a[s], a[s - 2]); break; case 19: this.$ = [a[s]]; break; case 20: a[s].push(a[s - 1]), this.$ = a[s]; break; case 21: break; case 22: r.addMember(a[s - 1], r.cleanupLabel(a[s])); break; case 23: case 24: break; case 25: this.$ = { id1: a[s - 2], id2: a[s], relation: a[s - 1], relationTitle1: "none", relationTitle2: "none" }; break; case 26: this.$ = { id1: a[s - 3], id2: a[s], relation: a[s - 1], relationTitle1: a[s - 2], relationTitle2: "none" }; break; case 27: this.$ = { id1: a[s - 3], id2: a[s], relation: a[s - 2], relationTitle1: "none", relationTitle2: a[s - 1] }; break; case 28: this.$ = { id1: a[s - 4], id2: a[s], relation: a[s - 2], relationTitle1: a[s - 3], relationTitle2: a[s - 1] }; break; case 29: this.$ = { type1: a[s - 2], type2: a[s], lineType: a[s - 1] }; break; case 30: this.$ = { type1: "none", type2: a[s], lineType: a[s - 1] }; break; case 31: this.$ = { type1: a[s - 1], type2: "none", lineType: a[s] }; break; case 32: this.$ = { type1: "none", type2: "none", lineType: a[s] }; break; case 33: this.$ = r.relationType.AGGREGATION; break; case 34: this.$ = r.relationType.EXTENSION; break; case 35: this.$ = r.relationType.COMPOSITION; break; case 36: this.$ = r.relationType.DEPENDENCY; break; case 37: this.$ = r.lineType.LINE; break; case 38: this.$ = r.lineType.DOTTED_LINE; break; case 39: this.$ = a[s - 2], r.setClickEvent(a[s - 1], a[s], void 0); break; case 40: this.$ = a[s - 3], r.setClickEvent(a[s - 2], a[s - 1], a[s]); break; case 41: this.$ = a[s - 2], r.setLink(a[s - 1], a[s], void 0); break; case 42: this.$ = a[s - 3], r.setLink(a[s - 2], a[s - 1], a[s]) } }, table: [{ 3: 1, 4: 2, 5: [1, 3] }, { 1: [3] }, { 1: [2, 1] }, { 6: [1, 4] }, { 7: 5, 9: 6, 10: 12, 11: 19, 13: 7, 15: 8, 16: 9, 17: 10, 18: 11, 19: e, 23: n, 25: r, 26: i, 37: a, 38: o, 52: s, 53: u, 54: c }, { 8: [1, 23] }, { 6: [1, 24], 8: [2, 3] }, t(f, [2, 10], { 14: [1, 25] }), t(f, [2, 12]), t(f, [2, 13]), t(f, [2, 14]), t(f, [2, 15]), t(f, [2, 21], { 27: 26, 29: 29, 30: 30, 14: [1, 28], 28: [1, 27], 31: l, 32: h, 33: d, 34: p, 35: g, 36: y }), { 10: 37, 11: 19, 52: s, 53: u, 54: c }, t(f, [2, 23]), t(f, [2, 24]), { 11: 38, 52: s, 53: u, 54: c }, { 10: 39, 11: 19, 52: s, 53: u, 54: c }, { 10: 40, 11: 19, 52: s, 53: u, 54: c }, t(b, [2, 7], { 11: 19, 10: 41, 12: [1, 42], 52: s, 53: u, 54: c }), t(v, [2, 56]), t(v, [2, 57]), t(v, [2, 58]), { 1: [2, 2] }, { 7: 43, 8: [2, 4], 9: 6, 10: 12, 11: 19, 13: 7, 15: 8, 16: 9, 17: 10, 18: 11, 19: e, 23: n, 25: r, 26: i, 37: a, 38: o, 52: s, 53: u, 54: c }, t(f, [2, 11]), { 10: 44, 11: 19, 28: [1, 45], 52: s, 53: u, 54: c }, { 27: 46, 29: 29, 30: 30, 31: l, 32: h, 33: d, 34: p, 35: g, 36: y }, t(f, [2, 22]), { 30: 47, 35: g, 36: y }, t(m, [2, 32], { 29: 48, 31: l, 32: h, 33: d, 34: p }), t(_, [2, 33]), t(_, [2, 34]), t(_, [2, 35]), t(_, [2, 36]), t(w, [2, 37]), t(w, [2, 38]), t(f, [2, 16], { 20: [1, 49] }), { 24: [1, 50] }, { 28: [1, 51] }, { 28: [1, 52] }, t(b, [2, 6]), t(b, [2, 9], { 11: 19, 10: 53, 52: s, 53: u, 54: c }), { 8: [2, 5] }, t(x, [2, 25]), { 10: 54, 11: 19, 52: s, 53: u, 54: c }, { 10: 55, 11: 19, 28: [1, 56], 52: s, 53: u, 54: c }, t(m, [2, 31], { 29: 57, 31: l, 32: h, 33: d, 34: p }), t(m, [2, 30]), { 21: 58, 25: k }, { 10: 60, 11: 19, 52: s, 53: u, 54: c }, t(f, [2, 39], { 28: [1, 61] }), t(f, [2, 41], { 28: [1, 62] }), t(b, [2, 8]), t(x, [2, 27]), t(x, [2, 26]), { 10: 63, 11: 19, 52: s, 53: u, 54: c }, t(m, [2, 29]), { 22: [1, 64] }, { 21: 65, 22: [2, 19], 25: k }, t(f, [2, 18]), t(f, [2, 40]), t(f, [2, 42]), t(x, [2, 28]), t(f, [2, 17]), { 22: [2, 20] }], defaultActions: { 2: [2, 1], 23: [2, 2], 43: [2, 5], 65: [2, 20] }, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, A = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: {}, performAction: function(t, e, n, r) { switch (n) { case 0: break; case 1: return 6; case 2: break; case 3: return 5; case 4: return this.begin("struct"), 20; case 5: return "EOF_IN_STRUCT"; case 6: return "OPEN_IN_STRUCT"; case 7: return this.popState(), 22; case 8: break; case 9: return "MEMBER"; case 10: return 19; case 11: return 37; case 12: return 38; case 13: return 23; case 14: return 24; case 15: this.begin("generic"); break; case 16: this.popState(); break; case 17: return "GENERICTYPE"; case 18: this.begin("string"); break; case 19: this.popState(); break; case 20: return "STR"; case 21: case 22: return 32; case 23: case 24: return 34; case 25: return 33; case 26: return 31; case 27: return 35; case 28: return 36; case 29: return 14; case 30: return 50; case 31: return "DOT"; case 32: return "PLUS"; case 33: return 47; case 34: case 35: return "EQUALS"; case 36: return 54; case 37: return "PUNCTUATION"; case 38: return 53; case 39: return 52; case 40: return 49; case 41: return 8 } }, rules: [/^(?:%%[^\n]*\n*)/, /^(?:\n+)/, /^(?:\s+)/, /^(?:classDiagram\b)/, /^(?:[\{])/, /^(?:$)/, /^(?:[\{])/, /^(?:\})/, /^(?:[\n])/, /^(?:[^\{\}\n]*)/, /^(?:class\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:[~])/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:--)/, /^(?:\.\.)/, /^(?::[^\n;]+)/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:[!"#$%&'*+,-.`?\\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:$)/], conditions: { string: { rules: [19, 20], inclusive: !1 }, generic: { rules: [16, 17], inclusive: !1 }, struct: { rules: [5, 6, 7, 8, 9], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41], inclusive: !0 } } }; function S() { this.yy = {} } return E.lexer = A, S.prototype = E, E.Parser = S, new S }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [1, 2], n = [1, 3], r = [1, 4], i = [2, 4], a = [1, 9], o = [1, 11], s = [1, 13], u = [1, 14], c = [1, 15], f = [1, 16], l = [1, 21], h = [1, 17], d = [1, 18], p = [1, 19], g = [1, 20], y = [1, 22], b = [1, 4, 5, 13, 14, 16, 18, 19, 21, 22, 23, 24, 25, 28], v = [1, 4, 5, 11, 12, 13, 14, 16, 18, 19, 21, 22, 23, 24, 25, 28], m = [4, 5, 13, 14, 16, 18, 19, 21, 22, 23, 24, 25, 28], _ = { trace: function() {}, yy: {}, symbols_: { error: 2, start: 3, SPACE: 4, NL: 5, SD: 6, document: 7, line: 8, statement: 9, idStatement: 10, DESCR: 11, "--\x3e": 12, HIDE_EMPTY: 13, scale: 14, WIDTH: 15, COMPOSIT_STATE: 16, STRUCT_START: 17, STRUCT_STOP: 18, STATE_DESCR: 19, AS: 20, ID: 21, FORK: 22, JOIN: 23, CONCURRENT: 24, note: 25, notePosition: 26, NOTE_TEXT: 27, EDGE_STATE: 28, left_of: 29, right_of: 30, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "SPACE", 5: "NL", 6: "SD", 11: "DESCR", 12: "--\x3e", 13: "HIDE_EMPTY", 14: "scale", 15: "WIDTH", 16: "COMPOSIT_STATE", 17: "STRUCT_START", 18: "STRUCT_STOP", 19: "STATE_DESCR", 20: "AS", 21: "ID", 22: "FORK", 23: "JOIN", 24: "CONCURRENT", 25: "note", 27: "NOTE_TEXT", 28: "EDGE_STATE", 29: "left_of", 30: "right_of" }, productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [10, 1], [10, 1], [26, 1], [26, 1] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 3: return r.setRootDoc(a[s]), a[s]; case 4: this.$ = []; break; case 5: "nl" != a[s] && (a[s - 1].push(a[s]), this.$ = a[s - 1]); break; case 6: case 7: this.$ = a[s]; break; case 8: this.$ = "nl"; break; case 9: this.$ = { stmt: "state", id: a[s], type: "default", description: "" }; break; case 10: this.$ = { stmt: "state", id: a[s - 1], type: "default", description: a[s].trim() }; break; case 11: this.$ = { stmt: "relation", state1: { stmt: "state", id: a[s - 2], type: "default", description: "" }, state2: { stmt: "state", id: a[s], type: "default", description: "" } }; break; case 12: this.$ = { stmt: "relation", state1: { stmt: "state", id: a[s - 3], type: "default", description: "" }, state2: { stmt: "state", id: a[s - 1], type: "default", description: "" }, description: a[s].substr(1).trim() }; break; case 16: this.$ = { stmt: "state", id: a[s - 3], type: "default", description: "", doc: a[s - 1] }; break; case 17: var u = a[s], c = a[s - 2].trim(); if (a[s].match(":")) { var f = a[s].split(":"); u = f[0], c = [c, f[1]] } this.$ = { stmt: "state", id: u, type: "default", description: c }; break; case 18: this.$ = { stmt: "state", id: a[s - 3], type: "default", description: a[s - 5], doc: a[s - 1] }; break; case 19: this.$ = { stmt: "state", id: a[s], type: "fork" }; break; case 20: this.$ = { stmt: "state", id: a[s], type: "join" }; break; case 21: this.$ = { stmt: "state", id: r.getDividerId(), type: "divider" }; break; case 22: this.$ = { stmt: "state", id: a[s - 1].trim(), note: { position: a[s - 2].trim(), text: a[s].trim() } }; break; case 24: case 25: this.$ = a[s] } }, table: [{ 3: 1, 4: e, 5: n, 6: r }, { 1: [3] }, { 3: 5, 4: e, 5: n, 6: r }, { 3: 6, 4: e, 5: n, 6: r }, t([1, 4, 5, 13, 14, 16, 19, 21, 22, 23, 24, 25, 28], i, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: a, 5: o, 8: 8, 9: 10, 10: 12, 13: s, 14: u, 16: c, 19: f, 21: l, 22: h, 23: d, 24: p, 25: g, 28: y }, t(b, [2, 5]), { 9: 23, 10: 12, 13: s, 14: u, 16: c, 19: f, 21: l, 22: h, 23: d, 24: p, 25: g, 28: y }, t(b, [2, 7]), t(b, [2, 8]), t(b, [2, 9], { 11: [1, 24], 12: [1, 25] }), t(b, [2, 13]), { 15: [1, 26] }, t(b, [2, 15], { 17: [1, 27] }), { 20: [1, 28] }, t(b, [2, 19]), t(b, [2, 20]), t(b, [2, 21]), { 26: 29, 27: [1, 30], 29: [1, 31], 30: [1, 32] }, t(v, [2, 24]), t(v, [2, 25]), t(b, [2, 6]), t(b, [2, 10]), { 10: 33, 21: l, 28: y }, t(b, [2, 14]), t(m, i, { 7: 34 }), { 21: [1, 35] }, { 21: [1, 36] }, { 20: [1, 37] }, { 21: [2, 26] }, { 21: [2, 27] }, t(b, [2, 11], { 11: [1, 38] }), { 4: a, 5: o, 8: 8, 9: 10, 10: 12, 13: s, 14: u, 16: c, 18: [1, 39], 19: f, 21: l, 22: h, 23: d, 24: p, 25: g, 28: y }, t(b, [2, 17], { 17: [1, 40] }), { 27: [1, 41] }, { 21: [1, 42] }, t(b, [2, 12]), t(b, [2, 16]), t(m, i, { 7: 43 }), t(b, [2, 22]), t(b, [2, 23]), { 4: a, 5: o, 8: 8, 9: 10, 10: 12, 13: s, 14: u, 16: c, 18: [1, 44], 19: f, 21: l, 22: h, 23: d, 24: p, 25: g, 28: y }, t(b, [2, 18])], defaultActions: { 5: [2, 1], 6: [2, 2], 31: [2, 26], 32: [2, 27] }, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, w = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: { "case-insensitive": !0 }, performAction: function(t, e, n, r) { switch (n) { case 0: return 5; case 1: case 2: case 3: case 4: break; case 5: return this.pushState("SCALE"), 14; case 6: return 15; case 7: this.popState(); break; case 8: this.pushState("STATE"); break; case 9: return this.popState(), e.yytext = e.yytext.slice(0, -8).trim(), 22; case 10: return this.popState(), e.yytext = e.yytext.slice(0, -8).trim(), 23; case 11: return this.popState(), e.yytext = e.yytext.slice(0, -8).trim(), 22; case 12: return this.popState(), e.yytext = e.yytext.slice(0, -8).trim(), 23; case 13: this.begin("STATE_STRING"); break; case 14: return this.popState(), this.pushState("STATE_ID"), "AS"; case 15: return this.popState(), "ID"; case 16: this.popState(); break; case 17: return "STATE_DESCR"; case 18: return 16; case 19: this.popState(); break; case 20: return this.popState(), this.pushState("struct"), 17; case 21: return this.popState(), 18; case 22: break; case 23: return this.begin("NOTE"), 25; case 24: return this.popState(), this.pushState("NOTE_ID"), 29; case 25: return this.popState(), this.pushState("NOTE_ID"), 30; case 26: this.popState(), this.pushState("FLOATING_NOTE"); break; case 27: return this.popState(), this.pushState("FLOATING_NOTE_ID"), "AS"; case 28: break; case 29: return "NOTE_TEXT"; case 30: return this.popState(), "ID"; case 31: return this.popState(), this.pushState("NOTE_TEXT"), 21; case 32: return this.popState(), e.yytext = e.yytext.substr(2).trim(), 27; case 33: return this.popState(), e.yytext = e.yytext.slice(0, -8).trim(), 27; case 34: return 6; case 35: return 13; case 36: return 28; case 37: return 21; case 38: return e.yytext = e.yytext.trim(), 11; case 39: return 12; case 40: return 24; case 41: return 5; case 42: return "INVALID" } }, rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<<fork>>)/i, /^(?:.*<<join>>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:["])/i, /^(?:as\s*)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:\s*[^:;]+end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?:$)/i, /^(?:.)/i], conditions: { LINE: { rules: [2, 3], inclusive: !1 }, struct: { rules: [2, 3, 8, 21, 22, 23, 36, 37, 38, 39, 40], inclusive: !1 }, FLOATING_NOTE_ID: { rules: [30], inclusive: !1 }, FLOATING_NOTE: { rules: [27, 28, 29], inclusive: !1 }, NOTE_TEXT: { rules: [32, 33], inclusive: !1 }, NOTE_ID: { rules: [31], inclusive: !1 }, NOTE: { rules: [24, 25, 26], inclusive: !1 }, SCALE: { rules: [6, 7], inclusive: !1 }, ALIAS: { rules: [], inclusive: !1 }, STATE_ID: { rules: [15], inclusive: !1 }, STATE_STRING: { rules: [16, 17], inclusive: !1 }, FORK_STATE: { rules: [], inclusive: !1 }, STATE: { rules: [2, 3, 9, 10, 11, 12, 13, 14, 18, 19, 20], inclusive: !1 }, ID: { rules: [2, 3], inclusive: !1 }, INITIAL: { rules: [0, 1, 3, 4, 5, 8, 20, 23, 34, 35, 36, 37, 38, 39, 41, 42], inclusive: !0 } } }; function x() { this.yy = {} } return _.lexer = w, x.prototype = _, _.Parser = x, new x }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e, n) { (function(t, n) { (function() { var r, i = 200, a = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", o = "Expected a function", s = "__lodash_hash_undefined__", u = 500, c = "__lodash_placeholder__", f = 1, l = 2, h = 4, d = 1, p = 2, g = 1, y = 2, b = 4, v = 8, m = 16, _ = 32, w = 64, x = 128, k = 256, E = 512, A = 30, S = "...", M = 800, T = 16, D = 1, C = 2, N = 1 / 0, I = 9007199254740991, L = 17976931348623157e292, B = NaN, O = 4294967295, R = O - 1, P = O >>> 1, F = [ ["ary", x], ["bind", g], ["bindKey", y], ["curry", v], ["curryRight", m], ["flip", E], ["partial", _], ["partialRight", w], ["rearg", k] ], q = "[object Arguments]", j = "[object Array]", U = "[object AsyncFunction]", z = "[object Boolean]", Y = "[object Date]", V = "[object DOMException]", H = "[object Error]", G = "[object Function]", $ = "[object GeneratorFunction]", W = "[object Map]", K = "[object Number]", X = "[object Null]", Z = "[object Object]", J = "[object Proxy]", Q = "[object RegExp]", tt = "[object Set]", et = "[object String]", nt = "[object Symbol]", rt = "[object Undefined]", it = "[object WeakMap]", at = "[object WeakSet]", ot = "[object ArrayBuffer]", st = "[object DataView]", ut = "[object Float32Array]", ct = "[object Float64Array]", ft = "[object Int8Array]", lt = "[object Int16Array]", ht = "[object Int32Array]", dt = "[object Uint8Array]", pt = "[object Uint8ClampedArray]", gt = "[object Uint16Array]", yt = "[object Uint32Array]", bt = /\b__p \+= '';/g, vt = /\b(__p \+=) '' \+/g, mt = /(__e\(.*?\)|\b__t\)) \+\n'';/g, _t = /&(?:amp|lt|gt|quot|#39);/g, wt = /[&<>"']/g, xt = RegExp(_t.source), kt = RegExp(wt.source), Et = /<%-([\s\S]+?)%>/g, At = /<%([\s\S]+?)%>/g, St = /<%=([\s\S]+?)%>/g, Mt = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Tt = /^\w*$/, Dt = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Ct = /[\\^$.*+?()[\]{}|]/g, Nt = RegExp(Ct.source), It = /^\s+|\s+$/g, Lt = /^\s+/, Bt = /\s+$/, Ot = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Rt = /\{\n\/\* \[wrapped with (.+)\] \*/, Pt = /,? & /, Ft = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, qt = /\\(\\)?/g, jt = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, Ut = /\w*$/, zt = /^[-+]0x[0-9a-f]+$/i, Yt = /^0b[01]+$/i, Vt = /^\[object .+?Constructor\]$/, Ht = /^0o[0-7]+$/i, Gt = /^(?:0|[1-9]\d*)$/, $t = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, Wt = /($^)/, Kt = /['\n\r\u2028\u2029\\]/g, Xt = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", Zt = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", Jt = "[\\ud800-\\udfff]", Qt = "[" + Zt + "]", te = "[" + Xt + "]", ee = "\\d+", ne = "[\\u2700-\\u27bf]", re = "[a-z\\xdf-\\xf6\\xf8-\\xff]", ie = "[^\\ud800-\\udfff" + Zt + ee + "\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]", ae = "\\ud83c[\\udffb-\\udfff]", oe = "[^\\ud800-\\udfff]", se = "(?:\\ud83c[\\udde6-\\uddff]){2}", ue = "[\\ud800-\\udbff][\\udc00-\\udfff]", ce = "[A-Z\\xc0-\\xd6\\xd8-\\xde]", fe = "(?:" + re + "|" + ie + ")", le = "(?:" + ce + "|" + ie + ")", he = "(?:" + te + "|" + ae + ")" + "?", de = "[\\ufe0e\\ufe0f]?" + he + ("(?:\\u200d(?:" + [oe, se, ue].join("|") + ")[\\ufe0e\\ufe0f]?" + he + ")*"), pe = "(?:" + [ne, se, ue].join("|") + ")" + de, ge = "(?:" + [oe + te + "?", te, se, ue, Jt].join("|") + ")", ye = RegExp("['’]", "g"), be = RegExp(te, "g"), ve = RegExp(ae + "(?=" + ae + ")|" + ge + de, "g"), me = RegExp([ce + "?" + re + "+(?:['’](?:d|ll|m|re|s|t|ve))?(?=" + [Qt, ce, "$"].join("|") + ")", le + "+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=" + [Qt, ce + fe, "$"].join("|") + ")", ce + "?" + fe + "+(?:['’](?:d|ll|m|re|s|t|ve))?", ce + "+(?:['’](?:D|LL|M|RE|S|T|VE))?", "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", ee, pe].join("|"), "g"), _e = RegExp("[\\u200d\\ud800-\\udfff" + Xt + "\\ufe0e\\ufe0f]"), we = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, xe = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], ke = -1, Ee = {}; Ee[ut] = Ee[ct] = Ee[ft] = Ee[lt] = Ee[ht] = Ee[dt] = Ee[pt] = Ee[gt] = Ee[yt] = !0, Ee[q] = Ee[j] = Ee[ot] = Ee[z] = Ee[st] = Ee[Y] = Ee[H] = Ee[G] = Ee[W] = Ee[K] = Ee[Z] = Ee[Q] = Ee[tt] = Ee[et] = Ee[it] = !1; var Ae = {}; Ae[q] = Ae[j] = Ae[ot] = Ae[st] = Ae[z] = Ae[Y] = Ae[ut] = Ae[ct] = Ae[ft] = Ae[lt] = Ae[ht] = Ae[W] = Ae[K] = Ae[Z] = Ae[Q] = Ae[tt] = Ae[et] = Ae[nt] = Ae[dt] = Ae[pt] = Ae[gt] = Ae[yt] = !0, Ae[H] = Ae[G] = Ae[it] = !1; var Se = { "\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029" }, Me = parseFloat, Te = parseInt, De = "object" == typeof t && t && t.Object === Object && t, Ce = "object" == typeof self && self && self.Object === Object && self, Ne = De || Ce || Function("return this")(), Ie = e && !e.nodeType && e, Le = Ie && "object" == typeof n && n && !n.nodeType && n, Be = Le && Le.exports === Ie, Oe = Be && De.process, Re = function() { try { var t = Le && Le.require && Le.require("util").types; return t || Oe && Oe.binding && Oe.binding("util") } catch (t) {} }(), Pe = Re && Re.isArrayBuffer, Fe = Re && Re.isDate, qe = Re && Re.isMap, je = Re && Re.isRegExp, Ue = Re && Re.isSet, ze = Re && Re.isTypedArray; function Ye(t, e, n) { switch (n.length) { case 0: return t.call(e); case 1: return t.call(e, n[0]); case 2: return t.call(e, n[0], n[1]); case 3: return t.call(e, n[0], n[1], n[2]) } return t.apply(e, n) } function Ve(t, e, n, r) { for (var i = -1, a = null == t ? 0 : t.length; ++i < a;) { var o = t[i]; e(r, o, n(o), t) } return r } function He(t, e) { for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t);); return t } function Ge(t, e) { for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t);); return t } function $e(t, e) { for (var n = -1, r = null == t ? 0 : t.length; ++n < r;) if (!e(t[n], n, t)) return !1; return !0 } function We(t, e) { for (var n = -1, r = null == t ? 0 : t.length, i = 0, a = []; ++n < r;) { var o = t[n]; e(o, n, t) && (a[i++] = o) } return a } function Ke(t, e) { return !!(null == t ? 0 : t.length) && on(t, e, 0) > -1 } function Xe(t, e, n) { for (var r = -1, i = null == t ? 0 : t.length; ++r < i;) if (n(e, t[r])) return !0; return !1 } function Ze(t, e) { for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r;) i[n] = e(t[n], n, t); return i } function Je(t, e) { for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n]; return t } function Qe(t, e, n, r) { var i = -1, a = null == t ? 0 : t.length; for (r && a && (n = t[++i]); ++i < a;) n = e(n, t[i], i, t); return n } function tn(t, e, n, r) { var i = null == t ? 0 : t.length; for (r && i && (n = t[--i]); i--;) n = e(n, t[i], i, t); return n } function en(t, e) { for (var n = -1, r = null == t ? 0 : t.length; ++n < r;) if (e(t[n], n, t)) return !0; return !1 } var nn = fn("length"); function rn(t, e, n) { var r; return n(t, (function(t, n, i) { if (e(t, n, i)) return r = n, !1 })), r } function an(t, e, n, r) { for (var i = t.length, a = n + (r ? 1 : -1); r ? a-- : ++a < i;) if (e(t[a], a, t)) return a; return -1 } function on(t, e, n) { return e == e ? function(t, e, n) { var r = n - 1, i = t.length; for (; ++r < i;) if (t[r] === e) return r; return -1 }(t, e, n) : an(t, un, n) } function sn(t, e, n, r) { for (var i = n - 1, a = t.length; ++i < a;) if (r(t[i], e)) return i; return -1 } function un(t) { return t != t } function cn(t, e) { var n = null == t ? 0 : t.length; return n ? dn(t, e) / n : B } function fn(t) { return function(e) { return null == e ? r : e[t] } } function ln(t) { return function(e) { return null == t ? r : t[e] } } function hn(t, e, n, r, i) { return i(t, (function(t, i, a) { n = r ? (r = !1, t) : e(n, t, i, a) })), n } function dn(t, e) { for (var n, i = -1, a = t.length; ++i < a;) { var o = e(t[i]); o !== r && (n = n === r ? o : n + o) } return n } function pn(t, e) { for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n); return r } function gn(t) { return function(e) { return t(e) } } function yn(t, e) { return Ze(e, (function(e) { return t[e] })) } function bn(t, e) { return t.has(e) } function vn(t, e) { for (var n = -1, r = t.length; ++n < r && on(e, t[n], 0) > -1;); return n } function mn(t, e) { for (var n = t.length; n-- && on(e, t[n], 0) > -1;); return n } var _n = ln({ "À": "A", "Á": "A", "Â": "A", "Ã": "A", "Ä": "A", "Å": "A", "à": "a", "á": "a", "â": "a", "ã": "a", "ä": "a", "å": "a", "Ç": "C", "ç": "c", "Ð": "D", "ð": "d", "È": "E", "É": "E", "Ê": "E", "Ë": "E", "è": "e", "é": "e", "ê": "e", "ë": "e", "Ì": "I", "Í": "I", "Î": "I", "Ï": "I", "ì": "i", "í": "i", "î": "i", "ï": "i", "Ñ": "N", "ñ": "n", "Ò": "O", "Ó": "O", "Ô": "O", "Õ": "O", "Ö": "O", "Ø": "O", "ò": "o", "ó": "o", "ô": "o", "õ": "o", "ö": "o", "ø": "o", "Ù": "U", "Ú": "U", "Û": "U", "Ü": "U", "ù": "u", "ú": "u", "û": "u", "ü": "u", "Ý": "Y", "ý": "y", "ÿ": "y", "Æ": "Ae", "æ": "ae", "Þ": "Th", "þ": "th", "ß": "ss", "Ā": "A", "Ă": "A", "Ą": "A", "ā": "a", "ă": "a", "ą": "a", "Ć": "C", "Ĉ": "C", "Ċ": "C", "Č": "C", "ć": "c", "ĉ": "c", "ċ": "c", "č": "c", "Ď": "D", "Đ": "D", "ď": "d", "đ": "d", "Ē": "E", "Ĕ": "E", "Ė": "E", "Ę": "E", "Ě": "E", "ē": "e", "ĕ": "e", "ė": "e", "ę": "e", "ě": "e", "Ĝ": "G", "Ğ": "G", "Ġ": "G", "Ģ": "G", "ĝ": "g", "ğ": "g", "ġ": "g", "ģ": "g", "Ĥ": "H", "Ħ": "H", "ĥ": "h", "ħ": "h", "Ĩ": "I", "Ī": "I", "Ĭ": "I", "Į": "I", "İ": "I", "ĩ": "i", "ī": "i", "ĭ": "i", "į": "i", "ı": "i", "Ĵ": "J", "ĵ": "j", "Ķ": "K", "ķ": "k", "ĸ": "k", "Ĺ": "L", "Ļ": "L", "Ľ": "L", "Ŀ": "L", "Ł": "L", "ĺ": "l", "ļ": "l", "ľ": "l", "ŀ": "l", "ł": "l", "Ń": "N", "Ņ": "N", "Ň": "N", "Ŋ": "N", "ń": "n", "ņ": "n", "ň": "n", "ŋ": "n", "Ō": "O", "Ŏ": "O", "Ő": "O", "ō": "o", "ŏ": "o", "ő": "o", "Ŕ": "R", "Ŗ": "R", "Ř": "R", "ŕ": "r", "ŗ": "r", "ř": "r", "Ś": "S", "Ŝ": "S", "Ş": "S", "Š": "S", "ś": "s", "ŝ": "s", "ş": "s", "š": "s", "Ţ": "T", "Ť": "T", "Ŧ": "T", "ţ": "t", "ť": "t", "ŧ": "t", "Ũ": "U", "Ū": "U", "Ŭ": "U", "Ů": "U", "Ű": "U", "Ų": "U", "ũ": "u", "ū": "u", "ŭ": "u", "ů": "u", "ű": "u", "ų": "u", "Ŵ": "W", "ŵ": "w", "Ŷ": "Y", "ŷ": "y", "Ÿ": "Y", "Ź": "Z", "Ż": "Z", "Ž": "Z", "ź": "z", "ż": "z", "ž": "z", "IJ": "IJ", "ij": "ij", "Œ": "Oe", "œ": "oe", "ʼn": "'n", "ſ": "s" }), wn = ln({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }); function xn(t) { return "\\" + Se[t] } function kn(t) { return _e.test(t) } function En(t) { var e = -1, n = Array(t.size); return t.forEach((function(t, r) { n[++e] = [r, t] })), n } function An(t, e) { return function(n) { return t(e(n)) } } function Sn(t, e) { for (var n = -1, r = t.length, i = 0, a = []; ++n < r;) { var o = t[n]; o !== e && o !== c || (t[n] = c, a[i++] = n) } return a } function Mn(t) { var e = -1, n = Array(t.size); return t.forEach((function(t) { n[++e] = t })), n } function Tn(t) { var e = -1, n = Array(t.size); return t.forEach((function(t) { n[++e] = [t, t] })), n } function Dn(t) { return kn(t) ? function(t) { var e = ve.lastIndex = 0; for (; ve.test(t);) ++e; return e }(t) : nn(t) } function Cn(t) { return kn(t) ? function(t) { return t.match(ve) || [] }(t) : function(t) { return t.split("") }(t) } var Nn = ln({ "&": "&", "<": "<", ">": ">", """: '"', "'": "'" }); var In = function t(e) { var n, Xt = (e = null == e ? Ne : In.defaults(Ne.Object(), e, In.pick(Ne, xe))).Array, Zt = e.Date, Jt = e.Error, Qt = e.Function, te = e.Math, ee = e.Object, ne = e.RegExp, re = e.String, ie = e.TypeError, ae = Xt.prototype, oe = Qt.prototype, se = ee.prototype, ue = e["__core-js_shared__"], ce = oe.toString, fe = se.hasOwnProperty, le = 0, he = (n = /[^.]+$/.exec(ue && ue.keys && ue.keys.IE_PROTO || "")) ? "Symbol(src)_1." + n : "", de = se.toString, pe = ce.call(ee), ge = Ne._, ve = ne("^" + ce.call(fe).replace(Ct, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), _e = Be ? e.Buffer : r, Se = e.Symbol, De = e.Uint8Array, Ce = _e ? _e.allocUnsafe : r, Ie = An(ee.getPrototypeOf, ee), Le = ee.create, Oe = se.propertyIsEnumerable, Re = ae.splice, nn = Se ? Se.isConcatSpreadable : r, ln = Se ? Se.iterator : r, Ln = Se ? Se.toStringTag : r, Bn = function() { try { var t = Fa(ee, "defineProperty"); return t({}, "", {}), t } catch (t) {} }(), On = e.clearTimeout !== Ne.clearTimeout && e.clearTimeout, Rn = Zt && Zt.now !== Ne.Date.now && Zt.now, Pn = e.setTimeout !== Ne.setTimeout && e.setTimeout, Fn = te.ceil, qn = te.floor, jn = ee.getOwnPropertySymbols, Un = _e ? _e.isBuffer : r, zn = e.isFinite, Yn = ae.join, Vn = An(ee.keys, ee), Hn = te.max, Gn = te.min, $n = Zt.now, Wn = e.parseInt, Kn = te.random, Xn = ae.reverse, Zn = Fa(e, "DataView"), Jn = Fa(e, "Map"), Qn = Fa(e, "Promise"), tr = Fa(e, "Set"), er = Fa(e, "WeakMap"), nr = Fa(ee, "create"), rr = er && new er, ir = {}, ar = fo(Zn), or = fo(Jn), sr = fo(Qn), ur = fo(tr), cr = fo(er), fr = Se ? Se.prototype : r, lr = fr ? fr.valueOf : r, hr = fr ? fr.toString : r; function dr(t) { if (Ts(t) && !bs(t) && !(t instanceof br)) { if (t instanceof yr) return t; if (fe.call(t, "__wrapped__")) return lo(t) } return new yr(t) } var pr = function() { function t() {} return function(e) { if (!Ms(e)) return {}; if (Le) return Le(e); t.prototype = e; var n = new t; return t.prototype = r, n } }(); function gr() {} function yr(t, e) { this.__wrapped__ = t, this.__actions__ = [], this.__chain__ = !!e, this.__index__ = 0, this.__values__ = r } function br(t) { this.__wrapped__ = t, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = O, this.__views__ = [] } function vr(t) { var e = -1, n = null == t ? 0 : t.length; for (this.clear(); ++e < n;) { var r = t[e]; this.set(r[0], r[1]) } } function mr(t) { var e = -1, n = null == t ? 0 : t.length; for (this.clear(); ++e < n;) { var r = t[e]; this.set(r[0], r[1]) } } function _r(t) { var e = -1, n = null == t ? 0 : t.length; for (this.clear(); ++e < n;) { var r = t[e]; this.set(r[0], r[1]) } } function wr(t) { var e = -1, n = null == t ? 0 : t.length; for (this.__data__ = new _r; ++e < n;) this.add(t[e]) } function xr(t) { var e = this.__data__ = new mr(t); this.size = e.size } function kr(t, e) { var n = bs(t), r = !n && ys(t), i = !n && !r && ws(t), a = !n && !r && !i && Rs(t), o = n || r || i || a, s = o ? pn(t.length, re) : [], u = s.length; for (var c in t) !e && !fe.call(t, c) || o && ("length" == c || i && ("offset" == c || "parent" == c) || a && ("buffer" == c || "byteLength" == c || "byteOffset" == c) || Ha(c, u)) || s.push(c); return s } function Er(t) { var e = t.length; return e ? t[wi(0, e - 1)] : r } function Ar(t, e) { return so(na(t), Br(e, 0, t.length)) } function Sr(t) { return so(na(t)) } function Mr(t, e, n) { (n === r || ds(t[e], n)) && (n !== r || e in t) || Ir(t, e, n) } function Tr(t, e, n) { var i = t[e]; fe.call(t, e) && ds(i, n) && (n !== r || e in t) || Ir(t, e, n) } function Dr(t, e) { for (var n = t.length; n--;) if (ds(t[n][0], e)) return n; return -1 } function Cr(t, e, n, r) { return qr(t, (function(t, i, a) { e(r, t, n(t), a) })), r } function Nr(t, e) { return t && ra(e, iu(e), t) } function Ir(t, e, n) { "__proto__" == e && Bn ? Bn(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 }) : t[e] = n } function Lr(t, e) { for (var n = -1, i = e.length, a = Xt(i), o = null == t; ++n < i;) a[n] = o ? r : Qs(t, e[n]); return a } function Br(t, e, n) { return t == t && (n !== r && (t = t <= n ? t : n), e !== r && (t = t >= e ? t : e)), t } function Or(t, e, n, i, a, o) { var s, u = e & f, c = e & l, d = e & h; if (n && (s = a ? n(t, i, a, o) : n(t)), s !== r) return s; if (!Ms(t)) return t; var p = bs(t); if (p) { if (s = function(t) { var e = t.length, n = new t.constructor(e); e && "string" == typeof t[0] && fe.call(t, "index") && (n.index = t.index, n.input = t.input); return n }(t), !u) return na(t, s) } else { var g = Ua(t), y = g == G || g == $; if (ws(t)) return Xi(t, u); if (g == Z || g == q || y && !a) { if (s = c || y ? {} : Ya(t), !u) return c ? function(t, e) { return ra(t, ja(t), e) }(t, function(t, e) { return t && ra(e, au(e), t) }(s, t)) : function(t, e) { return ra(t, qa(t), e) }(t, Nr(s, t)) } else { if (!Ae[g]) return a ? t : {}; s = function(t, e, n) { var r = t.constructor; switch (e) { case ot: return Zi(t); case z: case Y: return new r(+t); case st: return function(t, e) { var n = e ? Zi(t.buffer) : t.buffer; return new t.constructor(n, t.byteOffset, t.byteLength) }(t, n); case ut: case ct: case ft: case lt: case ht: case dt: case pt: case gt: case yt: return Ji(t, n); case W: return new r; case K: case et: return new r(t); case Q: return function(t) { var e = new t.constructor(t.source, Ut.exec(t)); return e.lastIndex = t.lastIndex, e }(t); case tt: return new r; case nt: return i = t, lr ? ee(lr.call(i)) : {} } var i }(t, g, u) } } o || (o = new xr); var b = o.get(t); if (b) return b; o.set(t, s), Ls(t) ? t.forEach((function(r) { s.add(Or(r, e, n, r, t, o)) })) : Ds(t) && t.forEach((function(r, i) { s.set(i, Or(r, e, n, i, t, o)) })); var v = p ? r : (d ? c ? Na : Ca : c ? au : iu)(t); return He(v || t, (function(r, i) { v && (r = t[i = r]), Tr(s, i, Or(r, e, n, i, t, o)) })), s } function Rr(t, e, n) { var i = n.length; if (null == t) return !i; for (t = ee(t); i--;) { var a = n[i], o = e[a], s = t[a]; if (s === r && !(a in t) || !o(s)) return !1 } return !0 } function Pr(t, e, n) { if ("function" != typeof t) throw new ie(o); return ro((function() { t.apply(r, n) }), e) } function Fr(t, e, n, r) { var a = -1, o = Ke, s = !0, u = t.length, c = [], f = e.length; if (!u) return c; n && (e = Ze(e, gn(n))), r ? (o = Xe, s = !1) : e.length >= i && (o = bn, s = !1, e = new wr(e)); t: for (; ++a < u;) { var l = t[a], h = null == n ? l : n(l); if (l = r || 0 !== l ? l : 0, s && h == h) { for (var d = f; d--;) if (e[d] === h) continue t; c.push(l) } else o(e, h, r) || c.push(l) } return c } dr.templateSettings = { escape: Et, evaluate: At, interpolate: St, variable: "", imports: { _: dr } }, dr.prototype = gr.prototype, dr.prototype.constructor = dr, yr.prototype = pr(gr.prototype), yr.prototype.constructor = yr, br.prototype = pr(gr.prototype), br.prototype.constructor = br, vr.prototype.clear = function() { this.__data__ = nr ? nr(null) : {}, this.size = 0 }, vr.prototype.delete = function(t) { var e = this.has(t) && delete this.__data__[t]; return this.size -= e ? 1 : 0, e }, vr.prototype.get = function(t) { var e = this.__data__; if (nr) { var n = e[t]; return n === s ? r : n } return fe.call(e, t) ? e[t] : r }, vr.prototype.has = function(t) { var e = this.__data__; return nr ? e[t] !== r : fe.call(e, t) }, vr.prototype.set = function(t, e) { var n = this.__data__; return this.size += this.has(t) ? 0 : 1, n[t] = nr && e === r ? s : e, this }, mr.prototype.clear = function() { this.__data__ = [], this.size = 0 }, mr.prototype.delete = function(t) { var e = this.__data__, n = Dr(e, t); return !(n < 0) && (n == e.length - 1 ? e.pop() : Re.call(e, n, 1), --this.size, !0) }, mr.prototype.get = function(t) { var e = this.__data__, n = Dr(e, t); return n < 0 ? r : e[n][1] }, mr.prototype.has = function(t) { return Dr(this.__data__, t) > -1 }, mr.prototype.set = function(t, e) { var n = this.__data__, r = Dr(n, t); return r < 0 ? (++this.size, n.push([t, e])) : n[r][1] = e, this }, _r.prototype.clear = function() { this.size = 0, this.__data__ = { hash: new vr, map: new(Jn || mr), string: new vr } }, _r.prototype.delete = function(t) { var e = Ra(this, t).delete(t); return this.size -= e ? 1 : 0, e }, _r.prototype.get = function(t) { return Ra(this, t).get(t) }, _r.prototype.has = function(t) { return Ra(this, t).has(t) }, _r.prototype.set = function(t, e) { var n = Ra(this, t), r = n.size; return n.set(t, e), this.size += n.size == r ? 0 : 1, this }, wr.prototype.add = wr.prototype.push = function(t) { return this.__data__.set(t, s), this }, wr.prototype.has = function(t) { return this.__data__.has(t) }, xr.prototype.clear = function() { this.__data__ = new mr, this.size = 0 }, xr.prototype.delete = function(t) { var e = this.__data__, n = e.delete(t); return this.size = e.size, n }, xr.prototype.get = function(t) { return this.__data__.get(t) }, xr.prototype.has = function(t) { return this.__data__.has(t) }, xr.prototype.set = function(t, e) { var n = this.__data__; if (n instanceof mr) { var r = n.__data__; if (!Jn || r.length < i - 1) return r.push([t, e]), this.size = ++n.size, this; n = this.__data__ = new _r(r) } return n.set(t, e), this.size = n.size, this }; var qr = oa($r), jr = oa(Wr, !0); function Ur(t, e) { var n = !0; return qr(t, (function(t, r, i) { return n = !!e(t, r, i) })), n } function zr(t, e, n) { for (var i = -1, a = t.length; ++i < a;) { var o = t[i], s = e(o); if (null != s && (u === r ? s == s && !Os(s) : n(s, u))) var u = s, c = o } return c } function Yr(t, e) { var n = []; return qr(t, (function(t, r, i) { e(t, r, i) && n.push(t) })), n } function Vr(t, e, n, r, i) { var a = -1, o = t.length; for (n || (n = Va), i || (i = []); ++a < o;) { var s = t[a]; e > 0 && n(s) ? e > 1 ? Vr(s, e - 1, n, r, i) : Je(i, s) : r || (i[i.length] = s) } return i } var Hr = sa(), Gr = sa(!0); function $r(t, e) { return t && Hr(t, e, iu) } function Wr(t, e) { return t && Gr(t, e, iu) } function Kr(t, e) { return We(e, (function(e) { return Es(t[e]) })) } function Xr(t, e) { for (var n = 0, i = (e = Gi(e, t)).length; null != t && n < i;) t = t[co(e[n++])]; return n && n == i ? t : r } function Zr(t, e, n) { var r = e(t); return bs(t) ? r : Je(r, n(t)) } function Jr(t) { return null == t ? t === r ? rt : X : Ln && Ln in ee(t) ? function(t) { var e = fe.call(t, Ln), n = t[Ln]; try { t[Ln] = r; var i = !0 } catch (t) {} var a = de.call(t); i && (e ? t[Ln] = n : delete t[Ln]); return a }(t) : function(t) { return de.call(t) }(t) } function Qr(t, e) { return t > e } function ti(t, e) { return null != t && fe.call(t, e) } function ei(t, e) { return null != t && e in ee(t) } function ni(t, e, n) { for (var i = n ? Xe : Ke, a = t[0].length, o = t.length, s = o, u = Xt(o), c = 1 / 0, f = []; s--;) { var l = t[s]; s && e && (l = Ze(l, gn(e))), c = Gn(l.length, c), u[s] = !n && (e || a >= 120 && l.length >= 120) ? new wr(s && l) : r } l = t[0]; var h = -1, d = u[0]; t: for (; ++h < a && f.length < c;) { var p = l[h], g = e ? e(p) : p; if (p = n || 0 !== p ? p : 0, !(d ? bn(d, g) : i(f, g, n))) { for (s = o; --s;) { var y = u[s]; if (!(y ? bn(y, g) : i(t[s], g, n))) continue t } d && d.push(g), f.push(p) } } return f } function ri(t, e, n) { var i = null == (t = to(t, e = Gi(e, t))) ? t : t[co(ko(e))]; return null == i ? r : Ye(i, t, n) } function ii(t) { return Ts(t) && Jr(t) == q } function ai(t, e, n, i, a) { return t === e || (null == t || null == e || !Ts(t) && !Ts(e) ? t != t && e != e : function(t, e, n, i, a, o) { var s = bs(t), u = bs(e), c = s ? j : Ua(t), f = u ? j : Ua(e), l = (c = c == q ? Z : c) == Z, h = (f = f == q ? Z : f) == Z, g = c == f; if (g && ws(t)) { if (!ws(e)) return !1; s = !0, l = !1 } if (g && !l) return o || (o = new xr), s || Rs(t) ? Ta(t, e, n, i, a, o) : function(t, e, n, r, i, a, o) { switch (n) { case st: if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1; t = t.buffer, e = e.buffer; case ot: return !(t.byteLength != e.byteLength || !a(new De(t), new De(e))); case z: case Y: case K: return ds(+t, +e); case H: return t.name == e.name && t.message == e.message; case Q: case et: return t == e + ""; case W: var s = En; case tt: var u = r & d; if (s || (s = Mn), t.size != e.size && !u) return !1; var c = o.get(t); if (c) return c == e; r |= p, o.set(t, e); var f = Ta(s(t), s(e), r, i, a, o); return o.delete(t), f; case nt: if (lr) return lr.call(t) == lr.call(e) } return !1 }(t, e, c, n, i, a, o); if (!(n & d)) { var y = l && fe.call(t, "__wrapped__"), b = h && fe.call(e, "__wrapped__"); if (y || b) { var v = y ? t.value() : t, m = b ? e.value() : e; return o || (o = new xr), a(v, m, n, i, o) } } if (!g) return !1; return o || (o = new xr), function(t, e, n, i, a, o) { var s = n & d, u = Ca(t), c = u.length, f = Ca(e).length; if (c != f && !s) return !1; var l = c; for (; l--;) { var h = u[l]; if (!(s ? h in e : fe.call(e, h))) return !1 } var p = o.get(t); if (p && o.get(e)) return p == e; var g = !0; o.set(t, e), o.set(e, t); var y = s; for (; ++l < c;) { h = u[l]; var b = t[h], v = e[h]; if (i) var m = s ? i(v, b, h, e, t, o) : i(b, v, h, t, e, o); if (!(m === r ? b === v || a(b, v, n, i, o) : m)) { g = !1; break } y || (y = "constructor" == h) } if (g && !y) { var _ = t.constructor, w = e.constructor; _ != w && "constructor" in t && "constructor" in e && !("function" == typeof _ && _ instanceof _ && "function" == typeof w && w instanceof w) && (g = !1) } return o.delete(t), o.delete(e), g }(t, e, n, i, a, o) }(t, e, n, i, ai, a)) } function oi(t, e, n, i) { var a = n.length, o = a, s = !i; if (null == t) return !o; for (t = ee(t); a--;) { var u = n[a]; if (s && u[2] ? u[1] !== t[u[0]] : !(u[0] in t)) return !1 } for (; ++a < o;) { var c = (u = n[a])[0], f = t[c], l = u[1]; if (s && u[2]) { if (f === r && !(c in t)) return !1 } else { var h = new xr; if (i) var g = i(f, l, c, t, e, h); if (!(g === r ? ai(l, f, d | p, i, h) : g)) return !1 } } return !0 } function si(t) { return !(!Ms(t) || (e = t, he && he in e)) && (Es(t) ? ve : Vt).test(fo(t)); var e } function ui(t) { return "function" == typeof t ? t : null == t ? Cu : "object" == typeof t ? bs(t) ? pi(t[0], t[1]) : di(t) : qu(t) } function ci(t) { if (!Xa(t)) return Vn(t); var e = []; for (var n in ee(t)) fe.call(t, n) && "constructor" != n && e.push(n); return e } function fi(t) { if (!Ms(t)) return function(t) { var e = []; if (null != t) for (var n in ee(t)) e.push(n); return e }(t); var e = Xa(t), n = []; for (var r in t)("constructor" != r || !e && fe.call(t, r)) && n.push(r); return n } function li(t, e) { return t < e } function hi(t, e) { var n = -1, r = ms(t) ? Xt(t.length) : []; return qr(t, (function(t, i, a) { r[++n] = e(t, i, a) })), r } function di(t) { var e = Pa(t); return 1 == e.length && e[0][2] ? Ja(e[0][0], e[0][1]) : function(n) { return n === t || oi(n, t, e) } } function pi(t, e) { return $a(t) && Za(e) ? Ja(co(t), e) : function(n) { var i = Qs(n, t); return i === r && i === e ? tu(n, t) : ai(e, i, d | p) } } function gi(t, e, n, i, a) { t !== e && Hr(e, (function(o, s) { if (a || (a = new xr), Ms(o)) ! function(t, e, n, i, a, o, s) { var u = eo(t, n), c = eo(e, n), f = s.get(c); if (f) return void Mr(t, n, f); var l = o ? o(u, c, n + "", t, e, s) : r, h = l === r; if (h) { var d = bs(c), p = !d && ws(c), g = !d && !p && Rs(c); l = c, d || p || g ? bs(u) ? l = u : _s(u) ? l = na(u) : p ? (h = !1, l = Xi(c, !0)) : g ? (h = !1, l = Ji(c, !0)) : l = [] : Ns(c) || ys(c) ? (l = u, ys(u) ? l = Vs(u) : Ms(u) && !Es(u) || (l = Ya(c))) : h = !1 } h && (s.set(c, l), a(l, c, i, o, s), s.delete(c)); Mr(t, n, l) }(t, e, s, n, gi, i, a); else { var u = i ? i(eo(t, s), o, s + "", t, e, a) : r; u === r && (u = o), Mr(t, s, u) } }), au) } function yi(t, e) { var n = t.length; if (n) return Ha(e += e < 0 ? n : 0, n) ? t[e] : r } function bi(t, e, n) { var r = -1; return e = Ze(e.length ? e : [Cu], gn(Oa())), function(t, e) { var n = t.length; for (t.sort(e); n--;) t[n] = t[n].value; return t }(hi(t, (function(t, n, i) { return { criteria: Ze(e, (function(e) { return e(t) })), index: ++r, value: t } })), (function(t, e) { return function(t, e, n) { var r = -1, i = t.criteria, a = e.criteria, o = i.length, s = n.length; for (; ++r < o;) { var u = Qi(i[r], a[r]); if (u) { if (r >= s) return u; var c = n[r]; return u * ("desc" == c ? -1 : 1) } } return t.index - e.index }(t, e, n) })) } function vi(t, e, n) { for (var r = -1, i = e.length, a = {}; ++r < i;) { var o = e[r], s = Xr(t, o); n(s, o) && Si(a, Gi(o, t), s) } return a } function mi(t, e, n, r) { var i = r ? sn : on, a = -1, o = e.length, s = t; for (t === e && (e = na(e)), n && (s = Ze(t, gn(n))); ++a < o;) for (var u = 0, c = e[a], f = n ? n(c) : c; (u = i(s, f, u, r)) > -1;) s !== t && Re.call(s, u, 1), Re.call(t, u, 1); return t } function _i(t, e) { for (var n = t ? e.length : 0, r = n - 1; n--;) { var i = e[n]; if (n == r || i !== a) { var a = i; Ha(i) ? Re.call(t, i, 1) : Fi(t, i) } } return t } function wi(t, e) { return t + qn(Kn() * (e - t + 1)) } function xi(t, e) { var n = ""; if (!t || e < 1 || e > I) return n; do { e % 2 && (n += t), (e = qn(e / 2)) && (t += t) } while (e); return n } function ki(t, e) { return io(Qa(t, e, Cu), t + "") } function Ei(t) { return Er(du(t)) } function Ai(t, e) { var n = du(t); return so(n, Br(e, 0, n.length)) } function Si(t, e, n, i) { if (!Ms(t)) return t; for (var a = -1, o = (e = Gi(e, t)).length, s = o - 1, u = t; null != u && ++a < o;) { var c = co(e[a]), f = n; if (a != s) { var l = u[c]; (f = i ? i(l, c, u) : r) === r && (f = Ms(l) ? l : Ha(e[a + 1]) ? [] : {}) } Tr(u, c, f), u = u[c] } return t } var Mi = rr ? function(t, e) { return rr.set(t, e), t } : Cu, Ti = Bn ? function(t, e) { return Bn(t, "toString", { configurable: !0, enumerable: !1, value: Mu(e), writable: !0 }) } : Cu; function Di(t) { return so(du(t)) } function Ci(t, e, n) { var r = -1, i = t.length; e < 0 && (e = -e > i ? 0 : i + e), (n = n > i ? i : n) < 0 && (n += i), i = e > n ? 0 : n - e >>> 0, e >>>= 0; for (var a = Xt(i); ++r < i;) a[r] = t[r + e]; return a } function Ni(t, e) { var n; return qr(t, (function(t, r, i) { return !(n = e(t, r, i)) })), !!n } function Ii(t, e, n) { var r = 0, i = null == t ? r : t.length; if ("number" == typeof e && e == e && i <= P) { for (; r < i;) { var a = r + i >>> 1, o = t[a]; null !== o && !Os(o) && (n ? o <= e : o < e) ? r = a + 1 : i = a } return i } return Li(t, e, Cu, n) } function Li(t, e, n, i) { e = n(e); for (var a = 0, o = null == t ? 0 : t.length, s = e != e, u = null === e, c = Os(e), f = e === r; a < o;) { var l = qn((a + o) / 2), h = n(t[l]), d = h !== r, p = null === h, g = h == h, y = Os(h); if (s) var b = i || g; else b = f ? g && (i || d) : u ? g && d && (i || !p) : c ? g && d && !p && (i || !y) : !p && !y && (i ? h <= e : h < e); b ? a = l + 1 : o = l } return Gn(o, R) } function Bi(t, e) { for (var n = -1, r = t.length, i = 0, a = []; ++n < r;) { var o = t[n], s = e ? e(o) : o; if (!n || !ds(s, u)) { var u = s; a[i++] = 0 === o ? 0 : o } } return a } function Oi(t) { return "number" == typeof t ? t : Os(t) ? B : +t } function Ri(t) { if ("string" == typeof t) return t; if (bs(t)) return Ze(t, Ri) + ""; if (Os(t)) return hr ? hr.call(t) : ""; var e = t + ""; return "0" == e && 1 / t == -N ? "-0" : e } function Pi(t, e, n) { var r = -1, a = Ke, o = t.length, s = !0, u = [], c = u; if (n) s = !1, a = Xe; else if (o >= i) { var f = e ? null : xa(t); if (f) return Mn(f); s = !1, a = bn, c = new wr } else c = e ? [] : u; t: for (; ++r < o;) { var l = t[r], h = e ? e(l) : l; if (l = n || 0 !== l ? l : 0, s && h == h) { for (var d = c.length; d--;) if (c[d] === h) continue t; e && c.push(h), u.push(l) } else a(c, h, n) || (c !== u && c.push(h), u.push(l)) } return u } function Fi(t, e) { return null == (t = to(t, e = Gi(e, t))) || delete t[co(ko(e))] } function qi(t, e, n, r) { return Si(t, e, n(Xr(t, e)), r) } function ji(t, e, n, r) { for (var i = t.length, a = r ? i : -1; (r ? a-- : ++a < i) && e(t[a], a, t);); return n ? Ci(t, r ? 0 : a, r ? a + 1 : i) : Ci(t, r ? a + 1 : 0, r ? i : a) } function Ui(t, e) { var n = t; return n instanceof br && (n = n.value()), Qe(e, (function(t, e) { return e.func.apply(e.thisArg, Je([t], e.args)) }), n) } function zi(t, e, n) { var r = t.length; if (r < 2) return r ? Pi(t[0]) : []; for (var i = -1, a = Xt(r); ++i < r;) for (var o = t[i], s = -1; ++s < r;) s != i && (a[i] = Fr(a[i] || o, t[s], e, n)); return Pi(Vr(a, 1), e, n) } function Yi(t, e, n) { for (var i = -1, a = t.length, o = e.length, s = {}; ++i < a;) { var u = i < o ? e[i] : r; n(s, t[i], u) } return s } function Vi(t) { return _s(t) ? t : [] } function Hi(t) { return "function" == typeof t ? t : Cu } function Gi(t, e) { return bs(t) ? t : $a(t, e) ? [t] : uo(Hs(t)) } var $i = ki; function Wi(t, e, n) { var i = t.length; return n = n === r ? i : n, !e && n >= i ? t : Ci(t, e, n) } var Ki = On || function(t) { return Ne.clearTimeout(t) }; function Xi(t, e) { if (e) return t.slice(); var n = t.length, r = Ce ? Ce(n) : new t.constructor(n); return t.copy(r), r } function Zi(t) { var e = new t.constructor(t.byteLength); return new De(e).set(new De(t)), e } function Ji(t, e) { var n = e ? Zi(t.buffer) : t.buffer; return new t.constructor(n, t.byteOffset, t.length) } function Qi(t, e) { if (t !== e) { var n = t !== r, i = null === t, a = t == t, o = Os(t), s = e !== r, u = null === e, c = e == e, f = Os(e); if (!u && !f && !o && t > e || o && s && c && !u && !f || i && s && c || !n && c || !a) return 1; if (!i && !o && !f && t < e || f && n && a && !i && !o || u && n && a || !s && a || !c) return -1 } return 0 } function ta(t, e, n, r) { for (var i = -1, a = t.length, o = n.length, s = -1, u = e.length, c = Hn(a - o, 0), f = Xt(u + c), l = !r; ++s < u;) f[s] = e[s]; for (; ++i < o;)(l || i < a) && (f[n[i]] = t[i]); for (; c--;) f[s++] = t[i++]; return f } function ea(t, e, n, r) { for (var i = -1, a = t.length, o = -1, s = n.length, u = -1, c = e.length, f = Hn(a - s, 0), l = Xt(f + c), h = !r; ++i < f;) l[i] = t[i]; for (var d = i; ++u < c;) l[d + u] = e[u]; for (; ++o < s;)(h || i < a) && (l[d + n[o]] = t[i++]); return l } function na(t, e) { var n = -1, r = t.length; for (e || (e = Xt(r)); ++n < r;) e[n] = t[n]; return e } function ra(t, e, n, i) { var a = !n; n || (n = {}); for (var o = -1, s = e.length; ++o < s;) { var u = e[o], c = i ? i(n[u], t[u], u, n, t) : r; c === r && (c = t[u]), a ? Ir(n, u, c) : Tr(n, u, c) } return n } function ia(t, e) { return function(n, r) { var i = bs(n) ? Ve : Cr, a = e ? e() : {}; return i(n, t, Oa(r, 2), a) } } function aa(t) { return ki((function(e, n) { var i = -1, a = n.length, o = a > 1 ? n[a - 1] : r, s = a > 2 ? n[2] : r; for (o = t.length > 3 && "function" == typeof o ? (a--, o) : r, s && Ga(n[0], n[1], s) && (o = a < 3 ? r : o, a = 1), e = ee(e); ++i < a;) { var u = n[i]; u && t(e, u, i, o) } return e })) } function oa(t, e) { return function(n, r) { if (null == n) return n; if (!ms(n)) return t(n, r); for (var i = n.length, a = e ? i : -1, o = ee(n); (e ? a-- : ++a < i) && !1 !== r(o[a], a, o);); return n } } function sa(t) { return function(e, n, r) { for (var i = -1, a = ee(e), o = r(e), s = o.length; s--;) { var u = o[t ? s : ++i]; if (!1 === n(a[u], u, a)) break } return e } } function ua(t) { return function(e) { var n = kn(e = Hs(e)) ? Cn(e) : r, i = n ? n[0] : e.charAt(0), a = n ? Wi(n, 1).join("") : e.slice(1); return i[t]() + a } } function ca(t) { return function(e) { return Qe(Eu(yu(e).replace(ye, "")), t, "") } } function fa(t) { return function() { var e = arguments; switch (e.length) { case 0: return new t; case 1: return new t(e[0]); case 2: return new t(e[0], e[1]); case 3: return new t(e[0], e[1], e[2]); case 4: return new t(e[0], e[1], e[2], e[3]); case 5: return new t(e[0], e[1], e[2], e[3], e[4]); case 6: return new t(e[0], e[1], e[2], e[3], e[4], e[5]); case 7: return new t(e[0], e[1], e[2], e[3], e[4], e[5], e[6]) } var n = pr(t.prototype), r = t.apply(n, e); return Ms(r) ? r : n } } function la(t) { return function(e, n, i) { var a = ee(e); if (!ms(e)) { var o = Oa(n, 3); e = iu(e), n = function(t) { return o(a[t], t, a) } } var s = t(e, n, i); return s > -1 ? a[o ? e[s] : s] : r } } function ha(t) { return Da((function(e) { var n = e.length, i = n, a = yr.prototype.thru; for (t && e.reverse(); i--;) { var s = e[i]; if ("function" != typeof s) throw new ie(o); if (a && !u && "wrapper" == La(s)) var u = new yr([], !0) } for (i = u ? i : n; ++i < n;) { var c = La(s = e[i]), f = "wrapper" == c ? Ia(s) : r; u = f && Wa(f[0]) && f[1] == (x | v | _ | k) && !f[4].length && 1 == f[9] ? u[La(f[0])].apply(u, f[3]) : 1 == s.length && Wa(s) ? u[c]() : u.thru(s) } return function() { var t = arguments, r = t[0]; if (u && 1 == t.length && bs(r)) return u.plant(r).value(); for (var i = 0, a = n ? e[i].apply(this, t) : r; ++i < n;) a = e[i].call(this, a); return a } })) } function da(t, e, n, i, a, o, s, u, c, f) { var l = e & x, h = e & g, d = e & y, p = e & (v | m), b = e & E, _ = d ? r : fa(t); return function g() { for (var y = arguments.length, v = Xt(y), m = y; m--;) v[m] = arguments[m]; if (p) var w = Ba(g), x = function(t, e) { for (var n = t.length, r = 0; n--;) t[n] === e && ++r; return r }(v, w); if (i && (v = ta(v, i, a, p)), o && (v = ea(v, o, s, p)), y -= x, p && y < f) { var k = Sn(v, w); return _a(t, e, da, g.placeholder, n, v, k, u, c, f - y) } var E = h ? n : this, A = d ? E[t] : t; return y = v.length, u ? v = function(t, e) { var n = t.length, i = Gn(e.length, n), a = na(t); for (; i--;) { var o = e[i]; t[i] = Ha(o, n) ? a[o] : r } return t }(v, u) : b && y > 1 && v.reverse(), l && c < y && (v.length = c), this && this !== Ne && this instanceof g && (A = _ || fa(A)), A.apply(E, v) } } function pa(t, e) { return function(n, r) { return function(t, e, n, r) { return $r(t, (function(t, i, a) { e(r, n(t), i, a) })), r }(n, t, e(r), {}) } } function ga(t, e) { return function(n, i) { var a; if (n === r && i === r) return e; if (n !== r && (a = n), i !== r) { if (a === r) return i; "string" == typeof n || "string" == typeof i ? (n = Ri(n), i = Ri(i)) : (n = Oi(n), i = Oi(i)), a = t(n, i) } return a } } function ya(t) { return Da((function(e) { return e = Ze(e, gn(Oa())), ki((function(n) { var r = this; return t(e, (function(t) { return Ye(t, r, n) })) })) })) } function ba(t, e) { var n = (e = e === r ? " " : Ri(e)).length; if (n < 2) return n ? xi(e, t) : e; var i = xi(e, Fn(t / Dn(e))); return kn(e) ? Wi(Cn(i), 0, t).join("") : i.slice(0, t) } function va(t) { return function(e, n, i) { return i && "number" != typeof i && Ga(e, n, i) && (n = i = r), e = js(e), n === r ? (n = e, e = 0) : n = js(n), function(t, e, n, r) { for (var i = -1, a = Hn(Fn((e - t) / (n || 1)), 0), o = Xt(a); a--;) o[r ? a : ++i] = t, t += n; return o }(e, n, i = i === r ? e < n ? 1 : -1 : js(i), t) } } function ma(t) { return function(e, n) { return "string" == typeof e && "string" == typeof n || (e = Ys(e), n = Ys(n)), t(e, n) } } function _a(t, e, n, i, a, o, s, u, c, f) { var l = e & v; e |= l ? _ : w, (e &= ~(l ? w : _)) & b || (e &= ~(g | y)); var h = [t, e, a, l ? o : r, l ? s : r, l ? r : o, l ? r : s, u, c, f], d = n.apply(r, h); return Wa(t) && no(d, h), d.placeholder = i, ao(d, t, e) } function wa(t) { var e = te[t]; return function(t, n) { if (t = Ys(t), (n = null == n ? 0 : Gn(Us(n), 292)) && zn(t)) { var r = (Hs(t) + "e").split("e"); return +((r = (Hs(e(r[0] + "e" + (+r[1] + n))) + "e").split("e"))[0] + "e" + (+r[1] - n)) } return e(t) } } var xa = tr && 1 / Mn(new tr([, -0]))[1] == N ? function(t) { return new tr(t) } : Ou; function ka(t) { return function(e) { var n = Ua(e); return n == W ? En(e) : n == tt ? Tn(e) : function(t, e) { return Ze(e, (function(e) { return [e, t[e]] })) }(e, t(e)) } } function Ea(t, e, n, i, a, s, u, f) { var l = e & y; if (!l && "function" != typeof t) throw new ie(o); var h = i ? i.length : 0; if (h || (e &= ~(_ | w), i = a = r), u = u === r ? u : Hn(Us(u), 0), f = f === r ? f : Us(f), h -= a ? a.length : 0, e & w) { var d = i, p = a; i = a = r } var E = l ? r : Ia(t), A = [t, e, n, i, a, d, p, s, u, f]; if (E && function(t, e) { var n = t[1], r = e[1], i = n | r, a = i < (g | y | x), o = r == x && n == v || r == x && n == k && t[7].length <= e[8] || r == (x | k) && e[7].length <= e[8] && n == v; if (!a && !o) return t; r & g && (t[2] = e[2], i |= n & g ? 0 : b); var s = e[3]; if (s) { var u = t[3]; t[3] = u ? ta(u, s, e[4]) : s, t[4] = u ? Sn(t[3], c) : e[4] }(s = e[5]) && (u = t[5], t[5] = u ? ea(u, s, e[6]) : s, t[6] = u ? Sn(t[5], c) : e[6]); (s = e[7]) && (t[7] = s); r & x && (t[8] = null == t[8] ? e[8] : Gn(t[8], e[8])); null == t[9] && (t[9] = e[9]); t[0] = e[0], t[1] = i }(A, E), t = A[0], e = A[1], n = A[2], i = A[3], a = A[4], !(f = A[9] = A[9] === r ? l ? 0 : t.length : Hn(A[9] - h, 0)) && e & (v | m) && (e &= ~(v | m)), e && e != g) S = e == v || e == m ? function(t, e, n) { var i = fa(t); return function a() { for (var o = arguments.length, s = Xt(o), u = o, c = Ba(a); u--;) s[u] = arguments[u]; var f = o < 3 && s[0] !== c && s[o - 1] !== c ? [] : Sn(s, c); return (o -= f.length) < n ? _a(t, e, da, a.placeholder, r, s, f, r, r, n - o) : Ye(this && this !== Ne && this instanceof a ? i : t, this, s) } }(t, e, f) : e != _ && e != (g | _) || a.length ? da.apply(r, A) : function(t, e, n, r) { var i = e & g, a = fa(t); return function e() { for (var o = -1, s = arguments.length, u = -1, c = r.length, f = Xt(c + s), l = this && this !== Ne && this instanceof e ? a : t; ++u < c;) f[u] = r[u]; for (; s--;) f[u++] = arguments[++o]; return Ye(l, i ? n : this, f) } }(t, e, n, i); else var S = function(t, e, n) { var r = e & g, i = fa(t); return function e() { return (this && this !== Ne && this instanceof e ? i : t).apply(r ? n : this, arguments) } }(t, e, n); return ao((E ? Mi : no)(S, A), t, e) } function Aa(t, e, n, i) { return t === r || ds(t, se[n]) && !fe.call(i, n) ? e : t } function Sa(t, e, n, i, a, o) { return Ms(t) && Ms(e) && (o.set(e, t), gi(t, e, r, Sa, o), o.delete(e)), t } function Ma(t) { return Ns(t) ? r : t } function Ta(t, e, n, i, a, o) { var s = n & d, u = t.length, c = e.length; if (u != c && !(s && c > u)) return !1; var f = o.get(t); if (f && o.get(e)) return f == e; var l = -1, h = !0, g = n & p ? new wr : r; for (o.set(t, e), o.set(e, t); ++l < u;) { var y = t[l], b = e[l]; if (i) var v = s ? i(b, y, l, e, t, o) : i(y, b, l, t, e, o); if (v !== r) { if (v) continue; h = !1; break } if (g) { if (!en(e, (function(t, e) { if (!bn(g, e) && (y === t || a(y, t, n, i, o))) return g.push(e) }))) { h = !1; break } } else if (y !== b && !a(y, b, n, i, o)) { h = !1; break } } return o.delete(t), o.delete(e), h } function Da(t) { return io(Qa(t, r, vo), t + "") } function Ca(t) { return Zr(t, iu, qa) } function Na(t) { return Zr(t, au, ja) } var Ia = rr ? function(t) { return rr.get(t) } : Ou; function La(t) { for (var e = t.name + "", n = ir[e], r = fe.call(ir, e) ? n.length : 0; r--;) { var i = n[r], a = i.func; if (null == a || a == t) return i.name } return e } function Ba(t) { return (fe.call(dr, "placeholder") ? dr : t).placeholder } function Oa() { var t = dr.iteratee || Nu; return t = t === Nu ? ui : t, arguments.length ? t(arguments[0], arguments[1]) : t } function Ra(t, e) { var n, r, i = t.__data__; return ("string" == (r = typeof(n = e)) || "number" == r || "symbol" == r || "boolean" == r ? "__proto__" !== n : null === n) ? i["string" == typeof e ? "string" : "hash"] : i.map } function Pa(t) { for (var e = iu(t), n = e.length; n--;) { var r = e[n], i = t[r]; e[n] = [r, i, Za(i)] } return e } function Fa(t, e) { var n = function(t, e) { return null == t ? r : t[e] }(t, e); return si(n) ? n : r } var qa = jn ? function(t) { return null == t ? [] : (t = ee(t), We(jn(t), (function(e) { return Oe.call(t, e) }))) } : zu, ja = jn ? function(t) { for (var e = []; t;) Je(e, qa(t)), t = Ie(t); return e } : zu, Ua = Jr; function za(t, e, n) { for (var r = -1, i = (e = Gi(e, t)).length, a = !1; ++r < i;) { var o = co(e[r]); if (!(a = null != t && n(t, o))) break; t = t[o] } return a || ++r != i ? a : !!(i = null == t ? 0 : t.length) && Ss(i) && Ha(o, i) && (bs(t) || ys(t)) } function Ya(t) { return "function" != typeof t.constructor || Xa(t) ? {} : pr(Ie(t)) } function Va(t) { return bs(t) || ys(t) || !!(nn && t && t[nn]) } function Ha(t, e) { var n = typeof t; return !!(e = null == e ? I : e) && ("number" == n || "symbol" != n && Gt.test(t)) && t > -1 && t % 1 == 0 && t < e } function Ga(t, e, n) { if (!Ms(n)) return !1; var r = typeof e; return !!("number" == r ? ms(n) && Ha(e, n.length) : "string" == r && e in n) && ds(n[e], t) } function $a(t, e) { if (bs(t)) return !1; var n = typeof t; return !("number" != n && "symbol" != n && "boolean" != n && null != t && !Os(t)) || (Tt.test(t) || !Mt.test(t) || null != e && t in ee(e)) } function Wa(t) { var e = La(t), n = dr[e]; if ("function" != typeof n || !(e in br.prototype)) return !1; if (t === n) return !0; var r = Ia(n); return !!r && t === r[0] }(Zn && Ua(new Zn(new ArrayBuffer(1))) != st || Jn && Ua(new Jn) != W || Qn && "[object Promise]" != Ua(Qn.resolve()) || tr && Ua(new tr) != tt || er && Ua(new er) != it) && (Ua = function(t) { var e = Jr(t), n = e == Z ? t.constructor : r, i = n ? fo(n) : ""; if (i) switch (i) { case ar: return st; case or: return W; case sr: return "[object Promise]"; case ur: return tt; case cr: return it } return e }); var Ka = ue ? Es : Yu; function Xa(t) { var e = t && t.constructor; return t === ("function" == typeof e && e.prototype || se) } function Za(t) { return t == t && !Ms(t) } function Ja(t, e) { return function(n) { return null != n && (n[t] === e && (e !== r || t in ee(n))) } } function Qa(t, e, n) { return e = Hn(e === r ? t.length - 1 : e, 0), function() { for (var r = arguments, i = -1, a = Hn(r.length - e, 0), o = Xt(a); ++i < a;) o[i] = r[e + i]; i = -1; for (var s = Xt(e + 1); ++i < e;) s[i] = r[i]; return s[e] = n(o), Ye(t, this, s) } } function to(t, e) { return e.length < 2 ? t : Xr(t, Ci(e, 0, -1)) } function eo(t, e) { if (("constructor" !== e || "function" != typeof t[e]) && "__proto__" != e) return t[e] } var no = oo(Mi), ro = Pn || function(t, e) { return Ne.setTimeout(t, e) }, io = oo(Ti); function ao(t, e, n) { var r = e + ""; return io(t, function(t, e) { var n = e.length; if (!n) return t; var r = n - 1; return e[r] = (n > 1 ? "& " : "") + e[r], e = e.join(n > 2 ? ", " : " "), t.replace(Ot, "{\n/* [wrapped with " + e + "] */\n") }(r, function(t, e) { return He(F, (function(n) { var r = "_." + n[0]; e & n[1] && !Ke(t, r) && t.push(r) })), t.sort() }(function(t) { var e = t.match(Rt); return e ? e[1].split(Pt) : [] }(r), n))) } function oo(t) { var e = 0, n = 0; return function() { var i = $n(), a = T - (i - n); if (n = i, a > 0) { if (++e >= M) return arguments[0] } else e = 0; return t.apply(r, arguments) } } function so(t, e) { var n = -1, i = t.length, a = i - 1; for (e = e === r ? i : e; ++n < e;) { var o = wi(n, a), s = t[o]; t[o] = t[n], t[n] = s } return t.length = e, t } var uo = function(t) { var e = ss(t, (function(t) { return n.size === u && n.clear(), t })), n = e.cache; return e }((function(t) { var e = []; return 46 === t.charCodeAt(0) && e.push(""), t.replace(Dt, (function(t, n, r, i) { e.push(r ? i.replace(qt, "$1") : n || t) })), e })); function co(t) { if ("string" == typeof t || Os(t)) return t; var e = t + ""; return "0" == e && 1 / t == -N ? "-0" : e } function fo(t) { if (null != t) { try { return ce.call(t) } catch (t) {} try { return t + "" } catch (t) {} } return "" } function lo(t) { if (t instanceof br) return t.clone(); var e = new yr(t.__wrapped__, t.__chain__); return e.__actions__ = na(t.__actions__), e.__index__ = t.__index__, e.__values__ = t.__values__, e } var ho = ki((function(t, e) { return _s(t) ? Fr(t, Vr(e, 1, _s, !0)) : [] })), po = ki((function(t, e) { var n = ko(e); return _s(n) && (n = r), _s(t) ? Fr(t, Vr(e, 1, _s, !0), Oa(n, 2)) : [] })), go = ki((function(t, e) { var n = ko(e); return _s(n) && (n = r), _s(t) ? Fr(t, Vr(e, 1, _s, !0), r, n) : [] })); function yo(t, e, n) { var r = null == t ? 0 : t.length; if (!r) return -1; var i = null == n ? 0 : Us(n); return i < 0 && (i = Hn(r + i, 0)), an(t, Oa(e, 3), i) } function bo(t, e, n) { var i = null == t ? 0 : t.length; if (!i) return -1; var a = i - 1; return n !== r && (a = Us(n), a = n < 0 ? Hn(i + a, 0) : Gn(a, i - 1)), an(t, Oa(e, 3), a, !0) } function vo(t) { return (null == t ? 0 : t.length) ? Vr(t, 1) : [] } function mo(t) { return t && t.length ? t[0] : r } var _o = ki((function(t) { var e = Ze(t, Vi); return e.length && e[0] === t[0] ? ni(e) : [] })), wo = ki((function(t) { var e = ko(t), n = Ze(t, Vi); return e === ko(n) ? e = r : n.pop(), n.length && n[0] === t[0] ? ni(n, Oa(e, 2)) : [] })), xo = ki((function(t) { var e = ko(t), n = Ze(t, Vi); return (e = "function" == typeof e ? e : r) && n.pop(), n.length && n[0] === t[0] ? ni(n, r, e) : [] })); function ko(t) { var e = null == t ? 0 : t.length; return e ? t[e - 1] : r } var Eo = ki(Ao); function Ao(t, e) { return t && t.length && e && e.length ? mi(t, e) : t } var So = Da((function(t, e) { var n = null == t ? 0 : t.length, r = Lr(t, e); return _i(t, Ze(e, (function(t) { return Ha(t, n) ? +t : t })).sort(Qi)), r })); function Mo(t) { return null == t ? t : Xn.call(t) } var To = ki((function(t) { return Pi(Vr(t, 1, _s, !0)) })), Do = ki((function(t) { var e = ko(t); return _s(e) && (e = r), Pi(Vr(t, 1, _s, !0), Oa(e, 2)) })), Co = ki((function(t) { var e = ko(t); return e = "function" == typeof e ? e : r, Pi(Vr(t, 1, _s, !0), r, e) })); function No(t) { if (!t || !t.length) return []; var e = 0; return t = We(t, (function(t) { if (_s(t)) return e = Hn(t.length, e), !0 })), pn(e, (function(e) { return Ze(t, fn(e)) })) } function Io(t, e) { if (!t || !t.length) return []; var n = No(t); return null == e ? n : Ze(n, (function(t) { return Ye(e, r, t) })) } var Lo = ki((function(t, e) { return _s(t) ? Fr(t, e) : [] })), Bo = ki((function(t) { return zi(We(t, _s)) })), Oo = ki((function(t) { var e = ko(t); return _s(e) && (e = r), zi(We(t, _s), Oa(e, 2)) })), Ro = ki((function(t) { var e = ko(t); return e = "function" == typeof e ? e : r, zi(We(t, _s), r, e) })), Po = ki(No); var Fo = ki((function(t) { var e = t.length, n = e > 1 ? t[e - 1] : r; return n = "function" == typeof n ? (t.pop(), n) : r, Io(t, n) })); function qo(t) { var e = dr(t); return e.__chain__ = !0, e } function jo(t, e) { return e(t) } var Uo = Da((function(t) { var e = t.length, n = e ? t[0] : 0, i = this.__wrapped__, a = function(e) { return Lr(e, t) }; return !(e > 1 || this.__actions__.length) && i instanceof br && Ha(n) ? ((i = i.slice(n, +n + (e ? 1 : 0))).__actions__.push({ func: jo, args: [a], thisArg: r }), new yr(i, this.__chain__).thru((function(t) { return e && !t.length && t.push(r), t }))) : this.thru(a) })); var zo = ia((function(t, e, n) { fe.call(t, n) ? ++t[n] : Ir(t, n, 1) })); var Yo = la(yo), Vo = la(bo); function Ho(t, e) { return (bs(t) ? He : qr)(t, Oa(e, 3)) } function Go(t, e) { return (bs(t) ? Ge : jr)(t, Oa(e, 3)) } var $o = ia((function(t, e, n) { fe.call(t, n) ? t[n].push(e) : Ir(t, n, [e]) })); var Wo = ki((function(t, e, n) { var r = -1, i = "function" == typeof e, a = ms(t) ? Xt(t.length) : []; return qr(t, (function(t) { a[++r] = i ? Ye(e, t, n) : ri(t, e, n) })), a })), Ko = ia((function(t, e, n) { Ir(t, n, e) })); function Xo(t, e) { return (bs(t) ? Ze : hi)(t, Oa(e, 3)) } var Zo = ia((function(t, e, n) { t[n ? 0 : 1].push(e) }), (function() { return [ [], [] ] })); var Jo = ki((function(t, e) { if (null == t) return []; var n = e.length; return n > 1 && Ga(t, e[0], e[1]) ? e = [] : n > 2 && Ga(e[0], e[1], e[2]) && (e = [e[0]]), bi(t, Vr(e, 1), []) })), Qo = Rn || function() { return Ne.Date.now() }; function ts(t, e, n) { return e = n ? r : e, e = t && null == e ? t.length : e, Ea(t, x, r, r, r, r, e) } function es(t, e) { var n; if ("function" != typeof e) throw new ie(o); return t = Us(t), function() { return --t > 0 && (n = e.apply(this, arguments)), t <= 1 && (e = r), n } } var ns = ki((function(t, e, n) { var r = g; if (n.length) { var i = Sn(n, Ba(ns)); r |= _ } return Ea(t, r, e, n, i) })), rs = ki((function(t, e, n) { var r = g | y; if (n.length) { var i = Sn(n, Ba(rs)); r |= _ } return Ea(e, r, t, n, i) })); function is(t, e, n) { var i, a, s, u, c, f, l = 0, h = !1, d = !1, p = !0; if ("function" != typeof t) throw new ie(o); function g(e) { var n = i, o = a; return i = a = r, l = e, u = t.apply(o, n) } function y(t) { var n = t - f; return f === r || n >= e || n < 0 || d && t - l >= s } function b() { var t = Qo(); if (y(t)) return v(t); c = ro(b, function(t) { var n = e - (t - f); return d ? Gn(n, s - (t - l)) : n }(t)) } function v(t) { return c = r, p && i ? g(t) : (i = a = r, u) } function m() { var t = Qo(), n = y(t); if (i = arguments, a = this, f = t, n) { if (c === r) return function(t) { return l = t, c = ro(b, e), h ? g(t) : u }(f); if (d) return Ki(c), c = ro(b, e), g(f) } return c === r && (c = ro(b, e)), u } return e = Ys(e) || 0, Ms(n) && (h = !!n.leading, s = (d = "maxWait" in n) ? Hn(Ys(n.maxWait) || 0, e) : s, p = "trailing" in n ? !!n.trailing : p), m.cancel = function() { c !== r && Ki(c), l = 0, i = f = a = c = r }, m.flush = function() { return c === r ? u : v(Qo()) }, m } var as = ki((function(t, e) { return Pr(t, 1, e) })), os = ki((function(t, e, n) { return Pr(t, Ys(e) || 0, n) })); function ss(t, e) { if ("function" != typeof t || null != e && "function" != typeof e) throw new ie(o); var n = function() { var r = arguments, i = e ? e.apply(this, r) : r[0], a = n.cache; if (a.has(i)) return a.get(i); var o = t.apply(this, r); return n.cache = a.set(i, o) || a, o }; return n.cache = new(ss.Cache || _r), n } function us(t) { if ("function" != typeof t) throw new ie(o); return function() { var e = arguments; switch (e.length) { case 0: return !t.call(this); case 1: return !t.call(this, e[0]); case 2: return !t.call(this, e[0], e[1]); case 3: return !t.call(this, e[0], e[1], e[2]) } return !t.apply(this, e) } } ss.Cache = _r; var cs = $i((function(t, e) { var n = (e = 1 == e.length && bs(e[0]) ? Ze(e[0], gn(Oa())) : Ze(Vr(e, 1), gn(Oa()))).length; return ki((function(r) { for (var i = -1, a = Gn(r.length, n); ++i < a;) r[i] = e[i].call(this, r[i]); return Ye(t, this, r) })) })), fs = ki((function(t, e) { var n = Sn(e, Ba(fs)); return Ea(t, _, r, e, n) })), ls = ki((function(t, e) { var n = Sn(e, Ba(ls)); return Ea(t, w, r, e, n) })), hs = Da((function(t, e) { return Ea(t, k, r, r, r, e) })); function ds(t, e) { return t === e || t != t && e != e } var ps = ma(Qr), gs = ma((function(t, e) { return t >= e })), ys = ii(function() { return arguments }()) ? ii : function(t) { return Ts(t) && fe.call(t, "callee") && !Oe.call(t, "callee") }, bs = Xt.isArray, vs = Pe ? gn(Pe) : function(t) { return Ts(t) && Jr(t) == ot }; function ms(t) { return null != t && Ss(t.length) && !Es(t) } function _s(t) { return Ts(t) && ms(t) } var ws = Un || Yu, xs = Fe ? gn(Fe) : function(t) { return Ts(t) && Jr(t) == Y }; function ks(t) { if (!Ts(t)) return !1; var e = Jr(t); return e == H || e == V || "string" == typeof t.message && "string" == typeof t.name && !Ns(t) } function Es(t) { if (!Ms(t)) return !1; var e = Jr(t); return e == G || e == $ || e == U || e == J } function As(t) { return "number" == typeof t && t == Us(t) } function Ss(t) { return "number" == typeof t && t > -1 && t % 1 == 0 && t <= I } function Ms(t) { var e = typeof t; return null != t && ("object" == e || "function" == e) } function Ts(t) { return null != t && "object" == typeof t } var Ds = qe ? gn(qe) : function(t) { return Ts(t) && Ua(t) == W }; function Cs(t) { return "number" == typeof t || Ts(t) && Jr(t) == K } function Ns(t) { if (!Ts(t) || Jr(t) != Z) return !1; var e = Ie(t); if (null === e) return !0; var n = fe.call(e, "constructor") && e.constructor; return "function" == typeof n && n instanceof n && ce.call(n) == pe } var Is = je ? gn(je) : function(t) { return Ts(t) && Jr(t) == Q }; var Ls = Ue ? gn(Ue) : function(t) { return Ts(t) && Ua(t) == tt }; function Bs(t) { return "string" == typeof t || !bs(t) && Ts(t) && Jr(t) == et } function Os(t) { return "symbol" == typeof t || Ts(t) && Jr(t) == nt } var Rs = ze ? gn(ze) : function(t) { return Ts(t) && Ss(t.length) && !!Ee[Jr(t)] }; var Ps = ma(li), Fs = ma((function(t, e) { return t <= e })); function qs(t) { if (!t) return []; if (ms(t)) return Bs(t) ? Cn(t) : na(t); if (ln && t[ln]) return function(t) { for (var e, n = []; !(e = t.next()).done;) n.push(e.value); return n }(t[ln]()); var e = Ua(t); return (e == W ? En : e == tt ? Mn : du)(t) } function js(t) { return t ? (t = Ys(t)) === N || t === -N ? (t < 0 ? -1 : 1) * L : t == t ? t : 0 : 0 === t ? t : 0 } function Us(t) { var e = js(t), n = e % 1; return e == e ? n ? e - n : e : 0 } function zs(t) { return t ? Br(Us(t), 0, O) : 0 } function Ys(t) { if ("number" == typeof t) return t; if (Os(t)) return B; if (Ms(t)) { var e = "function" == typeof t.valueOf ? t.valueOf() : t; t = Ms(e) ? e + "" : e } if ("string" != typeof t) return 0 === t ? t : +t; t = t.replace(It, ""); var n = Yt.test(t); return n || Ht.test(t) ? Te(t.slice(2), n ? 2 : 8) : zt.test(t) ? B : +t } function Vs(t) { return ra(t, au(t)) } function Hs(t) { return null == t ? "" : Ri(t) } var Gs = aa((function(t, e) { if (Xa(e) || ms(e)) ra(e, iu(e), t); else for (var n in e) fe.call(e, n) && Tr(t, n, e[n]) })), $s = aa((function(t, e) { ra(e, au(e), t) })), Ws = aa((function(t, e, n, r) { ra(e, au(e), t, r) })), Ks = aa((function(t, e, n, r) { ra(e, iu(e), t, r) })), Xs = Da(Lr); var Zs = ki((function(t, e) { t = ee(t); var n = -1, i = e.length, a = i > 2 ? e[2] : r; for (a && Ga(e[0], e[1], a) && (i = 1); ++n < i;) for (var o = e[n], s = au(o), u = -1, c = s.length; ++u < c;) { var f = s[u], l = t[f]; (l === r || ds(l, se[f]) && !fe.call(t, f)) && (t[f] = o[f]) } return t })), Js = ki((function(t) { return t.push(r, Sa), Ye(su, r, t) })); function Qs(t, e, n) { var i = null == t ? r : Xr(t, e); return i === r ? n : i } function tu(t, e) { return null != t && za(t, e, ei) } var eu = pa((function(t, e, n) { null != e && "function" != typeof e.toString && (e = de.call(e)), t[e] = n }), Mu(Cu)), nu = pa((function(t, e, n) { null != e && "function" != typeof e.toString && (e = de.call(e)), fe.call(t, e) ? t[e].push(n) : t[e] = [n] }), Oa), ru = ki(ri); function iu(t) { return ms(t) ? kr(t) : ci(t) } function au(t) { return ms(t) ? kr(t, !0) : fi(t) } var ou = aa((function(t, e, n) { gi(t, e, n) })), su = aa((function(t, e, n, r) { gi(t, e, n, r) })), uu = Da((function(t, e) { var n = {}; if (null == t) return n; var r = !1; e = Ze(e, (function(e) { return e = Gi(e, t), r || (r = e.length > 1), e })), ra(t, Na(t), n), r && (n = Or(n, f | l | h, Ma)); for (var i = e.length; i--;) Fi(n, e[i]); return n })); var cu = Da((function(t, e) { return null == t ? {} : function(t, e) { return vi(t, e, (function(e, n) { return tu(t, n) })) }(t, e) })); function fu(t, e) { if (null == t) return {}; var n = Ze(Na(t), (function(t) { return [t] })); return e = Oa(e), vi(t, n, (function(t, n) { return e(t, n[0]) })) } var lu = ka(iu), hu = ka(au); function du(t) { return null == t ? [] : yn(t, iu(t)) } var pu = ca((function(t, e, n) { return e = e.toLowerCase(), t + (n ? gu(e) : e) })); function gu(t) { return ku(Hs(t).toLowerCase()) } function yu(t) { return (t = Hs(t)) && t.replace($t, _n).replace(be, "") } var bu = ca((function(t, e, n) { return t + (n ? "-" : "") + e.toLowerCase() })), vu = ca((function(t, e, n) { return t + (n ? " " : "") + e.toLowerCase() })), mu = ua("toLowerCase"); var _u = ca((function(t, e, n) { return t + (n ? "_" : "") + e.toLowerCase() })); var wu = ca((function(t, e, n) { return t + (n ? " " : "") + ku(e) })); var xu = ca((function(t, e, n) { return t + (n ? " " : "") + e.toUpperCase() })), ku = ua("toUpperCase"); function Eu(t, e, n) { return t = Hs(t), (e = n ? r : e) === r ? function(t) { return we.test(t) }(t) ? function(t) { return t.match(me) || [] }(t) : function(t) { return t.match(Ft) || [] }(t) : t.match(e) || [] } var Au = ki((function(t, e) { try { return Ye(t, r, e) } catch (t) { return ks(t) ? t : new Jt(t) } })), Su = Da((function(t, e) { return He(e, (function(e) { e = co(e), Ir(t, e, ns(t[e], t)) })), t })); function Mu(t) { return function() { return t } } var Tu = ha(), Du = ha(!0); function Cu(t) { return t } function Nu(t) { return ui("function" == typeof t ? t : Or(t, f)) } var Iu = ki((function(t, e) { return function(n) { return ri(n, t, e) } })), Lu = ki((function(t, e) { return function(n) { return ri(t, n, e) } })); function Bu(t, e, n) { var r = iu(e), i = Kr(e, r); null != n || Ms(e) && (i.length || !r.length) || (n = e, e = t, t = this, i = Kr(e, iu(e))); var a = !(Ms(n) && "chain" in n && !n.chain), o = Es(t); return He(i, (function(n) { var r = e[n]; t[n] = r, o && (t.prototype[n] = function() { var e = this.__chain__; if (a || e) { var n = t(this.__wrapped__), i = n.__actions__ = na(this.__actions__); return i.push({ func: r, args: arguments, thisArg: t }), n.__chain__ = e, n } return r.apply(t, Je([this.value()], arguments)) }) })), t } function Ou() {} var Ru = ya(Ze), Pu = ya($e), Fu = ya(en); function qu(t) { return $a(t) ? fn(co(t)) : function(t) { return function(e) { return Xr(e, t) } }(t) } var ju = va(), Uu = va(!0); function zu() { return [] } function Yu() { return !1 } var Vu = ga((function(t, e) { return t + e }), 0), Hu = wa("ceil"), Gu = ga((function(t, e) { return t / e }), 1), $u = wa("floor"); var Wu, Ku = ga((function(t, e) { return t * e }), 1), Xu = wa("round"), Zu = ga((function(t, e) { return t - e }), 0); return dr.after = function(t, e) { if ("function" != typeof e) throw new ie(o); return t = Us(t), function() { if (--t < 1) return e.apply(this, arguments) } }, dr.ary = ts, dr.assign = Gs, dr.assignIn = $s, dr.assignInWith = Ws, dr.assignWith = Ks, dr.at = Xs, dr.before = es, dr.bind = ns, dr.bindAll = Su, dr.bindKey = rs, dr.castArray = function() { if (!arguments.length) return []; var t = arguments[0]; return bs(t) ? t : [t] }, dr.chain = qo, dr.chunk = function(t, e, n) { e = (n ? Ga(t, e, n) : e === r) ? 1 : Hn(Us(e), 0); var i = null == t ? 0 : t.length; if (!i || e < 1) return []; for (var a = 0, o = 0, s = Xt(Fn(i / e)); a < i;) s[o++] = Ci(t, a, a += e); return s }, dr.compact = function(t) { for (var e = -1, n = null == t ? 0 : t.length, r = 0, i = []; ++e < n;) { var a = t[e]; a && (i[r++] = a) } return i }, dr.concat = function() { var t = arguments.length; if (!t) return []; for (var e = Xt(t - 1), n = arguments[0], r = t; r--;) e[r - 1] = arguments[r]; return Je(bs(n) ? na(n) : [n], Vr(e, 1)) }, dr.cond = function(t) { var e = null == t ? 0 : t.length, n = Oa(); return t = e ? Ze(t, (function(t) { if ("function" != typeof t[1]) throw new ie(o); return [n(t[0]), t[1]] })) : [], ki((function(n) { for (var r = -1; ++r < e;) { var i = t[r]; if (Ye(i[0], this, n)) return Ye(i[1], this, n) } })) }, dr.conforms = function(t) { return function(t) { var e = iu(t); return function(n) { return Rr(n, t, e) } }(Or(t, f)) }, dr.constant = Mu, dr.countBy = zo, dr.create = function(t, e) { var n = pr(t); return null == e ? n : Nr(n, e) }, dr.curry = function t(e, n, i) { var a = Ea(e, v, r, r, r, r, r, n = i ? r : n); return a.placeholder = t.placeholder, a }, dr.curryRight = function t(e, n, i) { var a = Ea(e, m, r, r, r, r, r, n = i ? r : n); return a.placeholder = t.placeholder, a }, dr.debounce = is, dr.defaults = Zs, dr.defaultsDeep = Js, dr.defer = as, dr.delay = os, dr.difference = ho, dr.differenceBy = po, dr.differenceWith = go, dr.drop = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? Ci(t, (e = n || e === r ? 1 : Us(e)) < 0 ? 0 : e, i) : [] }, dr.dropRight = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? Ci(t, 0, (e = i - (e = n || e === r ? 1 : Us(e))) < 0 ? 0 : e) : [] }, dr.dropRightWhile = function(t, e) { return t && t.length ? ji(t, Oa(e, 3), !0, !0) : [] }, dr.dropWhile = function(t, e) { return t && t.length ? ji(t, Oa(e, 3), !0) : [] }, dr.fill = function(t, e, n, i) { var a = null == t ? 0 : t.length; return a ? (n && "number" != typeof n && Ga(t, e, n) && (n = 0, i = a), function(t, e, n, i) { var a = t.length; for ((n = Us(n)) < 0 && (n = -n > a ? 0 : a + n), (i = i === r || i > a ? a : Us(i)) < 0 && (i += a), i = n > i ? 0 : zs(i); n < i;) t[n++] = e; return t }(t, e, n, i)) : [] }, dr.filter = function(t, e) { return (bs(t) ? We : Yr)(t, Oa(e, 3)) }, dr.flatMap = function(t, e) { return Vr(Xo(t, e), 1) }, dr.flatMapDeep = function(t, e) { return Vr(Xo(t, e), N) }, dr.flatMapDepth = function(t, e, n) { return n = n === r ? 1 : Us(n), Vr(Xo(t, e), n) }, dr.flatten = vo, dr.flattenDeep = function(t) { return (null == t ? 0 : t.length) ? Vr(t, N) : [] }, dr.flattenDepth = function(t, e) { return (null == t ? 0 : t.length) ? Vr(t, e = e === r ? 1 : Us(e)) : [] }, dr.flip = function(t) { return Ea(t, E) }, dr.flow = Tu, dr.flowRight = Du, dr.fromPairs = function(t) { for (var e = -1, n = null == t ? 0 : t.length, r = {}; ++e < n;) { var i = t[e]; r[i[0]] = i[1] } return r }, dr.functions = function(t) { return null == t ? [] : Kr(t, iu(t)) }, dr.functionsIn = function(t) { return null == t ? [] : Kr(t, au(t)) }, dr.groupBy = $o, dr.initial = function(t) { return (null == t ? 0 : t.length) ? Ci(t, 0, -1) : [] }, dr.intersection = _o, dr.intersectionBy = wo, dr.intersectionWith = xo, dr.invert = eu, dr.invertBy = nu, dr.invokeMap = Wo, dr.iteratee = Nu, dr.keyBy = Ko, dr.keys = iu, dr.keysIn = au, dr.map = Xo, dr.mapKeys = function(t, e) { var n = {}; return e = Oa(e, 3), $r(t, (function(t, r, i) { Ir(n, e(t, r, i), t) })), n }, dr.mapValues = function(t, e) { var n = {}; return e = Oa(e, 3), $r(t, (function(t, r, i) { Ir(n, r, e(t, r, i)) })), n }, dr.matches = function(t) { return di(Or(t, f)) }, dr.matchesProperty = function(t, e) { return pi(t, Or(e, f)) }, dr.memoize = ss, dr.merge = ou, dr.mergeWith = su, dr.method = Iu, dr.methodOf = Lu, dr.mixin = Bu, dr.negate = us, dr.nthArg = function(t) { return t = Us(t), ki((function(e) { return yi(e, t) })) }, dr.omit = uu, dr.omitBy = function(t, e) { return fu(t, us(Oa(e))) }, dr.once = function(t) { return es(2, t) }, dr.orderBy = function(t, e, n, i) { return null == t ? [] : (bs(e) || (e = null == e ? [] : [e]), bs(n = i ? r : n) || (n = null == n ? [] : [n]), bi(t, e, n)) }, dr.over = Ru, dr.overArgs = cs, dr.overEvery = Pu, dr.overSome = Fu, dr.partial = fs, dr.partialRight = ls, dr.partition = Zo, dr.pick = cu, dr.pickBy = fu, dr.property = qu, dr.propertyOf = function(t) { return function(e) { return null == t ? r : Xr(t, e) } }, dr.pull = Eo, dr.pullAll = Ao, dr.pullAllBy = function(t, e, n) { return t && t.length && e && e.length ? mi(t, e, Oa(n, 2)) : t }, dr.pullAllWith = function(t, e, n) { return t && t.length && e && e.length ? mi(t, e, r, n) : t }, dr.pullAt = So, dr.range = ju, dr.rangeRight = Uu, dr.rearg = hs, dr.reject = function(t, e) { return (bs(t) ? We : Yr)(t, us(Oa(e, 3))) }, dr.remove = function(t, e) { var n = []; if (!t || !t.length) return n; var r = -1, i = [], a = t.length; for (e = Oa(e, 3); ++r < a;) { var o = t[r]; e(o, r, t) && (n.push(o), i.push(r)) } return _i(t, i), n }, dr.rest = function(t, e) { if ("function" != typeof t) throw new ie(o); return ki(t, e = e === r ? e : Us(e)) }, dr.reverse = Mo, dr.sampleSize = function(t, e, n) { return e = (n ? Ga(t, e, n) : e === r) ? 1 : Us(e), (bs(t) ? Ar : Ai)(t, e) }, dr.set = function(t, e, n) { return null == t ? t : Si(t, e, n) }, dr.setWith = function(t, e, n, i) { return i = "function" == typeof i ? i : r, null == t ? t : Si(t, e, n, i) }, dr.shuffle = function(t) { return (bs(t) ? Sr : Di)(t) }, dr.slice = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? (n && "number" != typeof n && Ga(t, e, n) ? (e = 0, n = i) : (e = null == e ? 0 : Us(e), n = n === r ? i : Us(n)), Ci(t, e, n)) : [] }, dr.sortBy = Jo, dr.sortedUniq = function(t) { return t && t.length ? Bi(t) : [] }, dr.sortedUniqBy = function(t, e) { return t && t.length ? Bi(t, Oa(e, 2)) : [] }, dr.split = function(t, e, n) { return n && "number" != typeof n && Ga(t, e, n) && (e = n = r), (n = n === r ? O : n >>> 0) ? (t = Hs(t)) && ("string" == typeof e || null != e && !Is(e)) && !(e = Ri(e)) && kn(t) ? Wi(Cn(t), 0, n) : t.split(e, n) : [] }, dr.spread = function(t, e) { if ("function" != typeof t) throw new ie(o); return e = null == e ? 0 : Hn(Us(e), 0), ki((function(n) { var r = n[e], i = Wi(n, 0, e); return r && Je(i, r), Ye(t, this, i) })) }, dr.tail = function(t) { var e = null == t ? 0 : t.length; return e ? Ci(t, 1, e) : [] }, dr.take = function(t, e, n) { return t && t.length ? Ci(t, 0, (e = n || e === r ? 1 : Us(e)) < 0 ? 0 : e) : [] }, dr.takeRight = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? Ci(t, (e = i - (e = n || e === r ? 1 : Us(e))) < 0 ? 0 : e, i) : [] }, dr.takeRightWhile = function(t, e) { return t && t.length ? ji(t, Oa(e, 3), !1, !0) : [] }, dr.takeWhile = function(t, e) { return t && t.length ? ji(t, Oa(e, 3)) : [] }, dr.tap = function(t, e) { return e(t), t }, dr.throttle = function(t, e, n) { var r = !0, i = !0; if ("function" != typeof t) throw new ie(o); return Ms(n) && (r = "leading" in n ? !!n.leading : r, i = "trailing" in n ? !!n.trailing : i), is(t, e, { leading: r, maxWait: e, trailing: i }) }, dr.thru = jo, dr.toArray = qs, dr.toPairs = lu, dr.toPairsIn = hu, dr.toPath = function(t) { return bs(t) ? Ze(t, co) : Os(t) ? [t] : na(uo(Hs(t))) }, dr.toPlainObject = Vs, dr.transform = function(t, e, n) { var r = bs(t), i = r || ws(t) || Rs(t); if (e = Oa(e, 4), null == n) { var a = t && t.constructor; n = i ? r ? new a : [] : Ms(t) && Es(a) ? pr(Ie(t)) : {} } return (i ? He : $r)(t, (function(t, r, i) { return e(n, t, r, i) })), n }, dr.unary = function(t) { return ts(t, 1) }, dr.union = To, dr.unionBy = Do, dr.unionWith = Co, dr.uniq = function(t) { return t && t.length ? Pi(t) : [] }, dr.uniqBy = function(t, e) { return t && t.length ? Pi(t, Oa(e, 2)) : [] }, dr.uniqWith = function(t, e) { return e = "function" == typeof e ? e : r, t && t.length ? Pi(t, r, e) : [] }, dr.unset = function(t, e) { return null == t || Fi(t, e) }, dr.unzip = No, dr.unzipWith = Io, dr.update = function(t, e, n) { return null == t ? t : qi(t, e, Hi(n)) }, dr.updateWith = function(t, e, n, i) { return i = "function" == typeof i ? i : r, null == t ? t : qi(t, e, Hi(n), i) }, dr.values = du, dr.valuesIn = function(t) { return null == t ? [] : yn(t, au(t)) }, dr.without = Lo, dr.words = Eu, dr.wrap = function(t, e) { return fs(Hi(e), t) }, dr.xor = Bo, dr.xorBy = Oo, dr.xorWith = Ro, dr.zip = Po, dr.zipObject = function(t, e) { return Yi(t || [], e || [], Tr) }, dr.zipObjectDeep = function(t, e) { return Yi(t || [], e || [], Si) }, dr.zipWith = Fo, dr.entries = lu, dr.entriesIn = hu, dr.extend = $s, dr.extendWith = Ws, Bu(dr, dr), dr.add = Vu, dr.attempt = Au, dr.camelCase = pu, dr.capitalize = gu, dr.ceil = Hu, dr.clamp = function(t, e, n) { return n === r && (n = e, e = r), n !== r && (n = (n = Ys(n)) == n ? n : 0), e !== r && (e = (e = Ys(e)) == e ? e : 0), Br(Ys(t), e, n) }, dr.clone = function(t) { return Or(t, h) }, dr.cloneDeep = function(t) { return Or(t, f | h) }, dr.cloneDeepWith = function(t, e) { return Or(t, f | h, e = "function" == typeof e ? e : r) }, dr.cloneWith = function(t, e) { return Or(t, h, e = "function" == typeof e ? e : r) }, dr.conformsTo = function(t, e) { return null == e || Rr(t, e, iu(e)) }, dr.deburr = yu, dr.defaultTo = function(t, e) { return null == t || t != t ? e : t }, dr.divide = Gu, dr.endsWith = function(t, e, n) { t = Hs(t), e = Ri(e); var i = t.length, a = n = n === r ? i : Br(Us(n), 0, i); return (n -= e.length) >= 0 && t.slice(n, a) == e }, dr.eq = ds, dr.escape = function(t) { return (t = Hs(t)) && kt.test(t) ? t.replace(wt, wn) : t }, dr.escapeRegExp = function(t) { return (t = Hs(t)) && Nt.test(t) ? t.replace(Ct, "\\$&") : t }, dr.every = function(t, e, n) { var i = bs(t) ? $e : Ur; return n && Ga(t, e, n) && (e = r), i(t, Oa(e, 3)) }, dr.find = Yo, dr.findIndex = yo, dr.findKey = function(t, e) { return rn(t, Oa(e, 3), $r) }, dr.findLast = Vo, dr.findLastIndex = bo, dr.findLastKey = function(t, e) { return rn(t, Oa(e, 3), Wr) }, dr.floor = $u, dr.forEach = Ho, dr.forEachRight = Go, dr.forIn = function(t, e) { return null == t ? t : Hr(t, Oa(e, 3), au) }, dr.forInRight = function(t, e) { return null == t ? t : Gr(t, Oa(e, 3), au) }, dr.forOwn = function(t, e) { return t && $r(t, Oa(e, 3)) }, dr.forOwnRight = function(t, e) { return t && Wr(t, Oa(e, 3)) }, dr.get = Qs, dr.gt = ps, dr.gte = gs, dr.has = function(t, e) { return null != t && za(t, e, ti) }, dr.hasIn = tu, dr.head = mo, dr.identity = Cu, dr.includes = function(t, e, n, r) { t = ms(t) ? t : du(t), n = n && !r ? Us(n) : 0; var i = t.length; return n < 0 && (n = Hn(i + n, 0)), Bs(t) ? n <= i && t.indexOf(e, n) > -1 : !!i && on(t, e, n) > -1 }, dr.indexOf = function(t, e, n) { var r = null == t ? 0 : t.length; if (!r) return -1; var i = null == n ? 0 : Us(n); return i < 0 && (i = Hn(r + i, 0)), on(t, e, i) }, dr.inRange = function(t, e, n) { return e = js(e), n === r ? (n = e, e = 0) : n = js(n), function(t, e, n) { return t >= Gn(e, n) && t < Hn(e, n) }(t = Ys(t), e, n) }, dr.invoke = ru, dr.isArguments = ys, dr.isArray = bs, dr.isArrayBuffer = vs, dr.isArrayLike = ms, dr.isArrayLikeObject = _s, dr.isBoolean = function(t) { return !0 === t || !1 === t || Ts(t) && Jr(t) == z }, dr.isBuffer = ws, dr.isDate = xs, dr.isElement = function(t) { return Ts(t) && 1 === t.nodeType && !Ns(t) }, dr.isEmpty = function(t) { if (null == t) return !0; if (ms(t) && (bs(t) || "string" == typeof t || "function" == typeof t.splice || ws(t) || Rs(t) || ys(t))) return !t.length; var e = Ua(t); if (e == W || e == tt) return !t.size; if (Xa(t)) return !ci(t).length; for (var n in t) if (fe.call(t, n)) return !1; return !0 }, dr.isEqual = function(t, e) { return ai(t, e) }, dr.isEqualWith = function(t, e, n) { var i = (n = "function" == typeof n ? n : r) ? n(t, e) : r; return i === r ? ai(t, e, r, n) : !!i }, dr.isError = ks, dr.isFinite = function(t) { return "number" == typeof t && zn(t) }, dr.isFunction = Es, dr.isInteger = As, dr.isLength = Ss, dr.isMap = Ds, dr.isMatch = function(t, e) { return t === e || oi(t, e, Pa(e)) }, dr.isMatchWith = function(t, e, n) { return n = "function" == typeof n ? n : r, oi(t, e, Pa(e), n) }, dr.isNaN = function(t) { return Cs(t) && t != +t }, dr.isNative = function(t) { if (Ka(t)) throw new Jt(a); return si(t) }, dr.isNil = function(t) { return null == t }, dr.isNull = function(t) { return null === t }, dr.isNumber = Cs, dr.isObject = Ms, dr.isObjectLike = Ts, dr.isPlainObject = Ns, dr.isRegExp = Is, dr.isSafeInteger = function(t) { return As(t) && t >= -I && t <= I }, dr.isSet = Ls, dr.isString = Bs, dr.isSymbol = Os, dr.isTypedArray = Rs, dr.isUndefined = function(t) { return t === r }, dr.isWeakMap = function(t) { return Ts(t) && Ua(t) == it }, dr.isWeakSet = function(t) { return Ts(t) && Jr(t) == at }, dr.join = function(t, e) { return null == t ? "" : Yn.call(t, e) }, dr.kebabCase = bu, dr.last = ko, dr.lastIndexOf = function(t, e, n) { var i = null == t ? 0 : t.length; if (!i) return -1; var a = i; return n !== r && (a = (a = Us(n)) < 0 ? Hn(i + a, 0) : Gn(a, i - 1)), e == e ? function(t, e, n) { for (var r = n + 1; r--;) if (t[r] === e) return r; return r }(t, e, a) : an(t, un, a, !0) }, dr.lowerCase = vu, dr.lowerFirst = mu, dr.lt = Ps, dr.lte = Fs, dr.max = function(t) { return t && t.length ? zr(t, Cu, Qr) : r }, dr.maxBy = function(t, e) { return t && t.length ? zr(t, Oa(e, 2), Qr) : r }, dr.mean = function(t) { return cn(t, Cu) }, dr.meanBy = function(t, e) { return cn(t, Oa(e, 2)) }, dr.min = function(t) { return t && t.length ? zr(t, Cu, li) : r }, dr.minBy = function(t, e) { return t && t.length ? zr(t, Oa(e, 2), li) : r }, dr.stubArray = zu, dr.stubFalse = Yu, dr.stubObject = function() { return {} }, dr.stubString = function() { return "" }, dr.stubTrue = function() { return !0 }, dr.multiply = Ku, dr.nth = function(t, e) { return t && t.length ? yi(t, Us(e)) : r }, dr.noConflict = function() { return Ne._ === this && (Ne._ = ge), this }, dr.noop = Ou, dr.now = Qo, dr.pad = function(t, e, n) { t = Hs(t); var r = (e = Us(e)) ? Dn(t) : 0; if (!e || r >= e) return t; var i = (e - r) / 2; return ba(qn(i), n) + t + ba(Fn(i), n) }, dr.padEnd = function(t, e, n) { t = Hs(t); var r = (e = Us(e)) ? Dn(t) : 0; return e && r < e ? t + ba(e - r, n) : t }, dr.padStart = function(t, e, n) { t = Hs(t); var r = (e = Us(e)) ? Dn(t) : 0; return e && r < e ? ba(e - r, n) + t : t }, dr.parseInt = function(t, e, n) { return n || null == e ? e = 0 : e && (e = +e), Wn(Hs(t).replace(Lt, ""), e || 0) }, dr.random = function(t, e, n) { if (n && "boolean" != typeof n && Ga(t, e, n) && (e = n = r), n === r && ("boolean" == typeof e ? (n = e, e = r) : "boolean" == typeof t && (n = t, t = r)), t === r && e === r ? (t = 0, e = 1) : (t = js(t), e === r ? (e = t, t = 0) : e = js(e)), t > e) { var i = t; t = e, e = i } if (n || t % 1 || e % 1) { var a = Kn(); return Gn(t + a * (e - t + Me("1e-" + ((a + "").length - 1))), e) } return wi(t, e) }, dr.reduce = function(t, e, n) { var r = bs(t) ? Qe : hn, i = arguments.length < 3; return r(t, Oa(e, 4), n, i, qr) }, dr.reduceRight = function(t, e, n) { var r = bs(t) ? tn : hn, i = arguments.length < 3; return r(t, Oa(e, 4), n, i, jr) }, dr.repeat = function(t, e, n) { return e = (n ? Ga(t, e, n) : e === r) ? 1 : Us(e), xi(Hs(t), e) }, dr.replace = function() { var t = arguments, e = Hs(t[0]); return t.length < 3 ? e : e.replace(t[1], t[2]) }, dr.result = function(t, e, n) { var i = -1, a = (e = Gi(e, t)).length; for (a || (a = 1, t = r); ++i < a;) { var o = null == t ? r : t[co(e[i])]; o === r && (i = a, o = n), t = Es(o) ? o.call(t) : o } return t }, dr.round = Xu, dr.runInContext = t, dr.sample = function(t) { return (bs(t) ? Er : Ei)(t) }, dr.size = function(t) { if (null == t) return 0; if (ms(t)) return Bs(t) ? Dn(t) : t.length; var e = Ua(t); return e == W || e == tt ? t.size : ci(t).length }, dr.snakeCase = _u, dr.some = function(t, e, n) { var i = bs(t) ? en : Ni; return n && Ga(t, e, n) && (e = r), i(t, Oa(e, 3)) }, dr.sortedIndex = function(t, e) { return Ii(t, e) }, dr.sortedIndexBy = function(t, e, n) { return Li(t, e, Oa(n, 2)) }, dr.sortedIndexOf = function(t, e) { var n = null == t ? 0 : t.length; if (n) { var r = Ii(t, e); if (r < n && ds(t[r], e)) return r } return -1 }, dr.sortedLastIndex = function(t, e) { return Ii(t, e, !0) }, dr.sortedLastIndexBy = function(t, e, n) { return Li(t, e, Oa(n, 2), !0) }, dr.sortedLastIndexOf = function(t, e) { if (null == t ? 0 : t.length) { var n = Ii(t, e, !0) - 1; if (ds(t[n], e)) return n } return -1 }, dr.startCase = wu, dr.startsWith = function(t, e, n) { return t = Hs(t), n = null == n ? 0 : Br(Us(n), 0, t.length), e = Ri(e), t.slice(n, n + e.length) == e }, dr.subtract = Zu, dr.sum = function(t) { return t && t.length ? dn(t, Cu) : 0 }, dr.sumBy = function(t, e) { return t && t.length ? dn(t, Oa(e, 2)) : 0 }, dr.template = function(t, e, n) { var i = dr.templateSettings; n && Ga(t, e, n) && (e = r), t = Hs(t), e = Ws({}, e, i, Aa); var a, o, s = Ws({}, e.imports, i.imports, Aa), u = iu(s), c = yn(s, u), f = 0, l = e.interpolate || Wt, h = "__p += '", d = ne((e.escape || Wt).source + "|" + l.source + "|" + (l === St ? jt : Wt).source + "|" + (e.evaluate || Wt).source + "|$", "g"), p = "//# sourceURL=" + (fe.call(e, "sourceURL") ? (e.sourceURL + "").replace(/[\r\n]/g, " ") : "lodash.templateSources[" + ++ke + "]") + "\n"; t.replace(d, (function(e, n, r, i, s, u) { return r || (r = i), h += t.slice(f, u).replace(Kt, xn), n && (a = !0, h += "' +\n__e(" + n + ") +\n'"), s && (o = !0, h += "';\n" + s + ";\n__p += '"), r && (h += "' +\n((__t = (" + r + ")) == null ? '' : __t) +\n'"), f = u + e.length, e })), h += "';\n"; var g = fe.call(e, "variable") && e.variable; g || (h = "with (obj) {\n" + h + "\n}\n"), h = (o ? h.replace(bt, "") : h).replace(vt, "$1").replace(mt, "$1;"), h = "function(" + (g || "obj") + ") {\n" + (g ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (a ? ", __e = _.escape" : "") + (o ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + h + "return __p\n}"; var y = Au((function() { return Qt(u, p + "return " + h).apply(r, c) })); if (y.source = h, ks(y)) throw y; return y }, dr.times = function(t, e) { if ((t = Us(t)) < 1 || t > I) return []; var n = O, r = Gn(t, O); e = Oa(e), t -= O; for (var i = pn(r, e); ++n < t;) e(n); return i }, dr.toFinite = js, dr.toInteger = Us, dr.toLength = zs, dr.toLower = function(t) { return Hs(t).toLowerCase() }, dr.toNumber = Ys, dr.toSafeInteger = function(t) { return t ? Br(Us(t), -I, I) : 0 === t ? t : 0 }, dr.toString = Hs, dr.toUpper = function(t) { return Hs(t).toUpperCase() }, dr.trim = function(t, e, n) { if ((t = Hs(t)) && (n || e === r)) return t.replace(It, ""); if (!t || !(e = Ri(e))) return t; var i = Cn(t), a = Cn(e); return Wi(i, vn(i, a), mn(i, a) + 1).join("") }, dr.trimEnd = function(t, e, n) { if ((t = Hs(t)) && (n || e === r)) return t.replace(Bt, ""); if (!t || !(e = Ri(e))) return t; var i = Cn(t); return Wi(i, 0, mn(i, Cn(e)) + 1).join("") }, dr.trimStart = function(t, e, n) { if ((t = Hs(t)) && (n || e === r)) return t.replace(Lt, ""); if (!t || !(e = Ri(e))) return t; var i = Cn(t); return Wi(i, vn(i, Cn(e))).join("") }, dr.truncate = function(t, e) { var n = A, i = S; if (Ms(e)) { var a = "separator" in e ? e.separator : a; n = "length" in e ? Us(e.length) : n, i = "omission" in e ? Ri(e.omission) : i } var o = (t = Hs(t)).length; if (kn(t)) { var s = Cn(t); o = s.length } if (n >= o) return t; var u = n - Dn(i); if (u < 1) return i; var c = s ? Wi(s, 0, u).join("") : t.slice(0, u); if (a === r) return c + i; if (s && (u += c.length - u), Is(a)) { if (t.slice(u).search(a)) { var f, l = c; for (a.global || (a = ne(a.source, Hs(Ut.exec(a)) + "g")), a.lastIndex = 0; f = a.exec(l);) var h = f.index; c = c.slice(0, h === r ? u : h) } } else if (t.indexOf(Ri(a), u) != u) { var d = c.lastIndexOf(a); d > -1 && (c = c.slice(0, d)) } return c + i }, dr.unescape = function(t) { return (t = Hs(t)) && xt.test(t) ? t.replace(_t, Nn) : t }, dr.uniqueId = function(t) { var e = ++le; return Hs(t) + e }, dr.upperCase = xu, dr.upperFirst = ku, dr.each = Ho, dr.eachRight = Go, dr.first = mo, Bu(dr, (Wu = {}, $r(dr, (function(t, e) { fe.call(dr.prototype, e) || (Wu[e] = t) })), Wu), { chain: !1 }), dr.VERSION = "4.17.15", He(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], (function(t) { dr[t].placeholder = dr })), He(["drop", "take"], (function(t, e) { br.prototype[t] = function(n) { n = n === r ? 1 : Hn(Us(n), 0); var i = this.__filtered__ && !e ? new br(this) : this.clone(); return i.__filtered__ ? i.__takeCount__ = Gn(n, i.__takeCount__) : i.__views__.push({ size: Gn(n, O), type: t + (i.__dir__ < 0 ? "Right" : "") }), i }, br.prototype[t + "Right"] = function(e) { return this.reverse()[t](e).reverse() } })), He(["filter", "map", "takeWhile"], (function(t, e) { var n = e + 1, r = n == D || 3 == n; br.prototype[t] = function(t) { var e = this.clone(); return e.__iteratees__.push({ iteratee: Oa(t, 3), type: n }), e.__filtered__ = e.__filtered__ || r, e } })), He(["head", "last"], (function(t, e) { var n = "take" + (e ? "Right" : ""); br.prototype[t] = function() { return this[n](1).value()[0] } })), He(["initial", "tail"], (function(t, e) { var n = "drop" + (e ? "" : "Right"); br.prototype[t] = function() { return this.__filtered__ ? new br(this) : this[n](1) } })), br.prototype.compact = function() { return this.filter(Cu) }, br.prototype.find = function(t) { return this.filter(t).head() }, br.prototype.findLast = function(t) { return this.reverse().find(t) }, br.prototype.invokeMap = ki((function(t, e) { return "function" == typeof t ? new br(this) : this.map((function(n) { return ri(n, t, e) })) })), br.prototype.reject = function(t) { return this.filter(us(Oa(t))) }, br.prototype.slice = function(t, e) { t = Us(t); var n = this; return n.__filtered__ && (t > 0 || e < 0) ? new br(n) : (t < 0 ? n = n.takeRight(-t) : t && (n = n.drop(t)), e !== r && (n = (e = Us(e)) < 0 ? n.dropRight(-e) : n.take(e - t)), n) }, br.prototype.takeRightWhile = function(t) { return this.reverse().takeWhile(t).reverse() }, br.prototype.toArray = function() { return this.take(O) }, $r(br.prototype, (function(t, e) { var n = /^(?:filter|find|map|reject)|While$/.test(e), i = /^(?:head|last)$/.test(e), a = dr[i ? "take" + ("last" == e ? "Right" : "") : e], o = i || /^find/.test(e); a && (dr.prototype[e] = function() { var e = this.__wrapped__, s = i ? [1] : arguments, u = e instanceof br, c = s[0], f = u || bs(e), l = function(t) { var e = a.apply(dr, Je([t], s)); return i && h ? e[0] : e }; f && n && "function" == typeof c && 1 != c.length && (u = f = !1); var h = this.__chain__, d = !!this.__actions__.length, p = o && !h, g = u && !d; if (!o && f) { e = g ? e : new br(this); var y = t.apply(e, s); return y.__actions__.push({ func: jo, args: [l], thisArg: r }), new yr(y, h) } return p && g ? t.apply(this, s) : (y = this.thru(l), p ? i ? y.value()[0] : y.value() : y) }) })), He(["pop", "push", "shift", "sort", "splice", "unshift"], (function(t) { var e = ae[t], n = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru", r = /^(?:pop|shift)$/.test(t); dr.prototype[t] = function() { var t = arguments; if (r && !this.__chain__) { var i = this.value(); return e.apply(bs(i) ? i : [], t) } return this[n]((function(n) { return e.apply(bs(n) ? n : [], t) })) } })), $r(br.prototype, (function(t, e) { var n = dr[e]; if (n) { var r = n.name + ""; fe.call(ir, r) || (ir[r] = []), ir[r].push({ name: e, func: n }) } })), ir[da(r, y).name] = [{ name: "wrapper", func: r }], br.prototype.clone = function() { var t = new br(this.__wrapped__); return t.__actions__ = na(this.__actions__), t.__dir__ = this.__dir__, t.__filtered__ = this.__filtered__, t.__iteratees__ = na(this.__iteratees__), t.__takeCount__ = this.__takeCount__, t.__views__ = na(this.__views__), t }, br.prototype.reverse = function() { if (this.__filtered__) { var t = new br(this); t.__dir__ = -1, t.__filtered__ = !0 } else(t = this.clone()).__dir__ *= -1; return t }, br.prototype.value = function() { var t = this.__wrapped__.value(), e = this.__dir__, n = bs(t), r = e < 0, i = n ? t.length : 0, a = function(t, e, n) { var r = -1, i = n.length; for (; ++r < i;) { var a = n[r], o = a.size; switch (a.type) { case "drop": t += o; break; case "dropRight": e -= o; break; case "take": e = Gn(e, t + o); break; case "takeRight": t = Hn(t, e - o) } } return { start: t, end: e } }(0, i, this.__views__), o = a.start, s = a.end, u = s - o, c = r ? s : o - 1, f = this.__iteratees__, l = f.length, h = 0, d = Gn(u, this.__takeCount__); if (!n || !r && i == u && d == u) return Ui(t, this.__actions__); var p = []; t: for (; u-- && h < d;) { for (var g = -1, y = t[c += e]; ++g < l;) { var b = f[g], v = b.iteratee, m = b.type, _ = v(y); if (m == C) y = _; else if (!_) { if (m == D) continue t; break t } } p[h++] = y } return p }, dr.prototype.at = Uo, dr.prototype.chain = function() { return qo(this) }, dr.prototype.commit = function() { return new yr(this.value(), this.__chain__) }, dr.prototype.next = function() { this.__values__ === r && (this.__values__ = qs(this.value())); var t = this.__index__ >= this.__values__.length; return { done: t, value: t ? r : this.__values__[this.__index__++] } }, dr.prototype.plant = function(t) { for (var e, n = this; n instanceof gr;) { var i = lo(n); i.__index__ = 0, i.__values__ = r, e ? a.__wrapped__ = i : e = i; var a = i; n = n.__wrapped__ } return a.__wrapped__ = t, e }, dr.prototype.reverse = function() { var t = this.__wrapped__; if (t instanceof br) { var e = t; return this.__actions__.length && (e = new br(this)), (e = e.reverse()).__actions__.push({ func: jo, args: [Mo], thisArg: r }), new yr(e, this.__chain__) } return this.thru(Mo) }, dr.prototype.toJSON = dr.prototype.valueOf = dr.prototype.value = function() { return Ui(this.__wrapped__, this.__actions__) }, dr.prototype.first = dr.prototype.head, ln && (dr.prototype[ln] = function() { return this }), dr }(); "function" == typeof define && "object" == typeof define.amd && define.amd ? (Ne._ = In, define((function() { return In }))) : Le ? ((Le.exports = In)._ = In, Ie._ = In) : Ne._ = In }).call(this) }).call(this, n(12), n(9)(t)) }, function(t, e, n) { var r = n(66), i = n(67); t.exports = function(t, e, n, a) { var o = !n; n || (n = {}); for (var s = -1, u = e.length; ++s < u;) { var c = e[s], f = a ? a(n[c], t[c], c, n, t) : void 0; void 0 === f && (f = t[c]), o ? i(n, c, f) : r(n, c, f) } return n } }, function(t, e, n) { var r = n(268), i = n(20), a = Object.prototype, o = a.hasOwnProperty, s = a.propertyIsEnumerable, u = r(function() { return arguments }()) ? r : function(t) { return i(t) && o.call(t, "callee") && !s.call(t, "callee") }; t.exports = u }, function(t, e, n) { var r = n(270), i = n(69), a = n(94), o = a && a.isTypedArray, s = o ? i(o) : r; t.exports = s }, function(t, e, n) { var r = n(42), i = 1 / 0; t.exports = function(t) { if ("string" == typeof t || r(t)) return t; var e = t + ""; return "0" == e && 1 / t == -i ? "-0" : e } }, function(t, e, n) { "use strict"; var r = n(2), i = n(111), a = n(118), o = n(119), s = n(31); function u(t) { s.call(this, "digest"), this._hash = t } r(u, s), u.prototype._update = function(t) { this._hash.update(t) }, u.prototype._final = function() { return this._hash.digest() }, t.exports = function(t) { return "md5" === (t = t.toLowerCase()) ? new i : "rmd160" === t || "ripemd160" === t ? new a : new u(o(t)) } }, function(t, e, n) { (function(t) { function n(t) { return Object.prototype.toString.call(t) } e.isArray = function(t) { return Array.isArray ? Array.isArray(t) : "[object Array]" === n(t) }, e.isBoolean = function(t) { return "boolean" == typeof t }, e.isNull = function(t) { return null === t }, e.isNullOrUndefined = function(t) { return null == t }, e.isNumber = function(t) { return "number" == typeof t }, e.isString = function(t) { return "string" == typeof t }, e.isSymbol = function(t) { return "symbol" == typeof t }, e.isUndefined = function(t) { return void 0 === t }, e.isRegExp = function(t) { return "[object RegExp]" === n(t) }, e.isObject = function(t) { return "object" == typeof t && null !== t }, e.isDate = function(t) { return "[object Date]" === n(t) }, e.isError = function(t) { return "[object Error]" === n(t) || t instanceof Error }, e.isFunction = function(t) { return "function" == typeof t }, e.isPrimitive = function(t) { return null === t || "boolean" == typeof t || "number" == typeof t || "string" == typeof t || "symbol" == typeof t || void 0 === t }, e.isBuffer = t.isBuffer }).call(this, n(8).Buffer) }, function(t, e, n) { (function(e) { t.exports = function(t, n) { for (var r = Math.min(t.length, n.length), i = new e(r), a = 0; a < r; ++a) i[a] = t[a] ^ n[a]; return i } }).call(this, n(8).Buffer) }, function(t, e, n) { "use strict"; var r = n(21), i = n(16); function a() { this.pending = null, this.pendingTotal = 0, this.blockSize = this.constructor.blockSize, this.outSize = this.constructor.outSize, this.hmacStrength = this.constructor.hmacStrength, this.padLength = this.constructor.padLength / 8, this.endian = "big", this._delta8 = this.blockSize / 8, this._delta32 = this.blockSize / 32 } e.BlockHash = a, a.prototype.update = function(t, e) { if (t = r.toArray(t, e), this.pending ? this.pending = this.pending.concat(t) : this.pending = t, this.pendingTotal += t.length, this.pending.length >= this._delta8) { var n = (t = this.pending).length % this._delta8; this.pending = t.slice(t.length - n, t.length), 0 === this.pending.length && (this.pending = null), t = r.join32(t, 0, t.length - n, this.endian); for (var i = 0; i < t.length; i += this._delta32) this._update(t, i, i + this._delta32) } return this }, a.prototype.digest = function(t) { return this.update(this._pad()), i(null === this.pending), this._digest(t) }, a.prototype._pad = function() { var t = this.pendingTotal, e = this._delta8, n = e - (t + this.padLength) % e, r = new Array(n + this.padLength); r[0] = 128; for (var i = 1; i < n; i++) r[i] = 0; if (t <<= 3, "big" === this.endian) { for (var a = 8; a < this.padLength; a++) r[i++] = 0; r[i++] = 0, r[i++] = 0, r[i++] = 0, r[i++] = 0, r[i++] = t >>> 24 & 255, r[i++] = t >>> 16 & 255, r[i++] = t >>> 8 & 255, r[i++] = 255 & t } else for (r[i++] = 255 & t, r[i++] = t >>> 8 & 255, r[i++] = t >>> 16 & 255, r[i++] = t >>> 24 & 255, r[i++] = 0, r[i++] = 0, r[i++] = 0, r[i++] = 0, a = 8; a < this.padLength; a++) r[i++] = 0; return r } }, function(t, e, n) { var r = e; r.bignum = n(5), r.define = n(482).define, r.base = n(58), r.constants = n(221), r.decoders = n(487), r.encoders = n(489) }, function(t, e, n) { var r = e; r.Reporter = n(484).Reporter, r.DecoderBuffer = n(220).DecoderBuffer, r.EncoderBuffer = n(220).EncoderBuffer, r.Node = n(485) }, function(t, e, n) { t.exports = { graphlib: n(19), layout: n(349), debug: n(403), util: { time: n(10).time, notime: n(10).notime }, version: n(404) } }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [1, 4], n = [1, 3], r = [1, 5], i = [1, 8, 9, 10, 11, 26, 34, 61, 62, 63, 64, 65, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], a = [2, 2], o = [1, 12], s = [1, 13], u = [1, 14], c = [1, 15], f = [1, 22], l = [1, 46], h = [1, 24], d = [1, 25], p = [1, 26], g = [1, 27], y = [1, 28], b = [1, 40], v = [1, 35], m = [1, 37], _ = [1, 32], w = [1, 36], x = [1, 39], k = [1, 43], E = [1, 44], A = [1, 45], S = [1, 34], M = [1, 38], T = [1, 41], D = [1, 42], C = [1, 33], N = [1, 51], I = [1, 8, 9, 10, 11, 26, 30, 34, 61, 62, 63, 64, 65, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], L = [1, 55], B = [1, 54], O = [1, 56], R = [8, 9, 11, 55, 56], P = [8, 9, 10, 11, 55, 56], F = [8, 9, 10, 11, 35, 55, 56], q = [8, 9, 10, 11, 28, 34, 35, 37, 39, 41, 43, 45, 47, 48, 50, 55, 56, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], j = [8, 9, 11, 34, 55, 56, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], U = [34, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], z = [1, 100], Y = [1, 121], V = [1, 122], H = [1, 123], G = [1, 124], $ = [1, 104], W = [1, 95], K = [1, 96], X = [1, 92], Z = [1, 116], J = [1, 117], Q = [1, 118], tt = [1, 119], et = [1, 120], nt = [1, 125], rt = [1, 126], it = [1, 98], at = [1, 106], ot = [1, 109], st = [1, 107], ut = [1, 108], ct = [1, 101], ft = [1, 114], lt = [1, 113], ht = [1, 97], dt = [1, 94], pt = [1, 103], gt = [1, 105], yt = [1, 110], bt = [1, 111], vt = [1, 112], mt = [1, 115], _t = [8, 9, 10, 11, 26, 30, 34, 61, 62, 63, 64, 65, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], wt = [1, 129], xt = [1, 133], kt = [1, 135], Et = [1, 136], At = [8, 9, 10, 11, 12, 13, 26, 28, 29, 30, 34, 38, 40, 42, 44, 46, 47, 49, 51, 55, 56, 57, 61, 62, 63, 64, 65, 66, 67, 70, 76, 77, 80, 81, 82, 84, 85, 86, 87, 91, 92, 93, 94, 95, 96], St = [8, 9, 10, 11, 13, 34, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], Mt = [10, 77], Tt = [1, 201], Dt = [1, 205], Ct = [1, 202], Nt = [1, 199], It = [1, 196], Lt = [1, 197], Bt = [1, 198], Ot = [1, 200], Rt = [1, 203], Pt = [1, 204], Ft = [1, 206], qt = [8, 9, 11], jt = [1, 222], Ut = [8, 9, 11, 77], zt = [8, 9, 10, 11, 61, 73, 76, 77, 80, 81, 82, 83, 84, 85, 86], Yt = { trace: function() {}, yy: {}, symbols_: { error: 2, mermaidDoc: 3, graphConfig: 4, document: 5, line: 6, statement: 7, SEMI: 8, NEWLINE: 9, SPACE: 10, EOF: 11, GRAPH: 12, DIR: 13, FirstStmtSeperator: 14, ending: 15, endToken: 16, spaceList: 17, spaceListNewline: 18, verticeStatement: 19, separator: 20, styleStatement: 21, linkStyleStatement: 22, classDefStatement: 23, classStatement: 24, clickStatement: 25, subgraph: 26, text: 27, SQS: 28, SQE: 29, end: 30, link: 31, node: 32, vertex: 33, AMP: 34, STYLE_SEPARATOR: 35, idString: 36, PS: 37, PE: 38, "(-": 39, "-)": 40, STADIUMSTART: 41, STADIUMEND: 42, CYLINDERSTART: 43, CYLINDEREND: 44, DIAMOND_START: 45, DIAMOND_STOP: 46, TAGEND: 47, TRAPSTART: 48, TRAPEND: 49, INVTRAPSTART: 50, INVTRAPEND: 51, linkStatement: 52, arrowText: 53, TESTSTR: 54, START_LINK: 55, LINK: 56, PIPE: 57, textToken: 58, STR: 59, keywords: 60, STYLE: 61, LINKSTYLE: 62, CLASSDEF: 63, CLASS: 64, CLICK: 65, DOWN: 66, UP: 67, textNoTags: 68, textNoTagsToken: 69, DEFAULT: 70, stylesOpt: 71, alphaNum: 72, HEX: 73, numList: 74, INTERPOLATE: 75, NUM: 76, COMMA: 77, style: 78, styleComponent: 79, ALPHA: 80, COLON: 81, MINUS: 82, UNIT: 83, BRKT: 84, DOT: 85, PCT: 86, TAGSTART: 87, alphaNumToken: 88, idStringToken: 89, alphaNumStatement: 90, PUNCTUATION: 91, UNICODE_TEXT: 92, PLUS: 93, EQUALS: 94, MULT: 95, UNDERSCORE: 96, graphCodeTokens: 97, ARROW_CROSS: 98, ARROW_POINT: 99, ARROW_CIRCLE: 100, ARROW_OPEN: 101, QUOTE: 102, $accept: 0, $end: 1 }, terminals_: { 2: "error", 8: "SEMI", 9: "NEWLINE", 10: "SPACE", 11: "EOF", 12: "GRAPH", 13: "DIR", 26: "subgraph", 28: "SQS", 29: "SQE", 30: "end", 34: "AMP", 35: "STYLE_SEPARATOR", 37: "PS", 38: "PE", 39: "(-", 40: "-)", 41: "STADIUMSTART", 42: "STADIUMEND", 43: "CYLINDERSTART", 44: "CYLINDEREND", 45: "DIAMOND_START", 46: "DIAMOND_STOP", 47: "TAGEND", 48: "TRAPSTART", 49: "TRAPEND", 50: "INVTRAPSTART", 51: "INVTRAPEND", 54: "TESTSTR", 55: "START_LINK", 56: "LINK", 57: "PIPE", 59: "STR", 61: "STYLE", 62: "LINKSTYLE", 63: "CLASSDEF", 64: "CLASS", 65: "CLICK", 66: "DOWN", 67: "UP", 70: "DEFAULT", 73: "HEX", 75: "INTERPOLATE", 76: "NUM", 77: "COMMA", 80: "ALPHA", 81: "COLON", 82: "MINUS", 83: "UNIT", 84: "BRKT", 85: "DOT", 86: "PCT", 87: "TAGSTART", 91: "PUNCTUATION", 92: "UNICODE_TEXT", 93: "PLUS", 94: "EQUALS", 95: "MULT", 96: "UNDERSCORE", 98: "ARROW_CROSS", 99: "ARROW_POINT", 100: "ARROW_CIRCLE", 101: "ARROW_OPEN", 102: "QUOTE" }, productions_: [0, [3, 2], [5, 0], [5, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [4, 2], [4, 2], [4, 3], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [14, 1], [14, 1], [14, 2], [18, 2], [18, 2], [18, 1], [18, 1], [17, 2], [17, 1], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 9], [7, 6], [7, 4], [20, 1], [20, 1], [20, 1], [19, 3], [19, 4], [19, 2], [19, 1], [32, 1], [32, 5], [32, 3], [33, 4], [33, 6], [33, 4], [33, 4], [33, 4], [33, 4], [33, 4], [33, 6], [33, 4], [33, 4], [33, 4], [33, 4], [33, 4], [33, 1], [31, 2], [31, 3], [31, 3], [31, 1], [31, 3], [52, 1], [53, 3], [27, 1], [27, 2], [27, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [60, 1], [68, 1], [68, 2], [23, 5], [23, 5], [24, 5], [25, 5], [25, 7], [25, 5], [25, 7], [21, 5], [21, 5], [22, 5], [22, 5], [22, 9], [22, 9], [22, 7], [22, 7], [74, 1], [74, 3], [71, 1], [71, 3], [78, 1], [78, 2], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [69, 1], [69, 1], [69, 1], [69, 1], [36, 1], [36, 2], [72, 1], [72, 2], [90, 1], [90, 1], [90, 1], [90, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [88, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [89, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1], [97, 1] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 2: this.$ = []; break; case 3: a[s] !== [] && a[s - 1].push(a[s]), this.$ = a[s - 1]; break; case 4: case 66: case 68: case 80: case 126: case 128: case 129: this.$ = a[s]; break; case 11: r.setDirection(a[s - 1]), this.$ = a[s - 1]; break; case 26: this.$ = a[s - 1].nodes; break; case 27: case 28: case 29: case 30: case 31: this.$ = []; break; case 32: this.$ = r.addSubGraph(a[s - 6], a[s - 1], a[s - 4]); break; case 33: this.$ = r.addSubGraph(a[s - 3], a[s - 1], a[s - 3]); break; case 34: this.$ = r.addSubGraph(void 0, a[s - 1], void 0); break; case 38: r.addLink(a[s - 2].stmt, a[s], a[s - 1]), this.$ = { stmt: a[s], nodes: a[s].concat(a[s - 2].nodes) }; break; case 39: r.addLink(a[s - 3].stmt, a[s - 1], a[s - 2]), this.$ = { stmt: a[s - 1], nodes: a[s - 1].concat(a[s - 3].nodes) }; break; case 40: this.$ = { stmt: a[s - 1], nodes: a[s - 1] }; break; case 41: this.$ = { stmt: a[s], nodes: a[s] }; break; case 42: this.$ = [a[s]]; break; case 43: this.$ = a[s - 4].concat(a[s]); break; case 44: this.$ = [a[s - 2]], r.setClass(a[s - 2], a[s]); break; case 45: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "square"); break; case 46: this.$ = a[s - 5], r.addVertex(a[s - 5], a[s - 2], "circle"); break; case 47: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "ellipse"); break; case 48: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "stadium"); break; case 49: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "cylinder"); break; case 50: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "round"); break; case 51: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "diamond"); break; case 52: this.$ = a[s - 5], r.addVertex(a[s - 5], a[s - 2], "hexagon"); break; case 53: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "odd"); break; case 54: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "trapezoid"); break; case 55: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "inv_trapezoid"); break; case 56: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "lean_right"); break; case 57: this.$ = a[s - 3], r.addVertex(a[s - 3], a[s - 1], "lean_left"); break; case 58: this.$ = a[s], r.addVertex(a[s]); break; case 59: a[s - 1].text = a[s], this.$ = a[s - 1]; break; case 60: case 61: a[s - 2].text = a[s - 1], this.$ = a[s - 2]; break; case 62: this.$ = a[s]; break; case 63: var u = r.destructLink(a[s], a[s - 2]); this.$ = { type: u.type, stroke: u.stroke, text: a[s - 1] }; break; case 64: u = r.destructLink(a[s]); this.$ = { type: u.type, stroke: u.stroke }; break; case 65: this.$ = a[s - 1]; break; case 67: case 81: case 127: this.$ = a[s - 1] + "" + a[s]; break; case 82: case 83: this.$ = a[s - 4], r.addClass(a[s - 2], a[s]); break; case 84: this.$ = a[s - 4], r.setClass(a[s - 2], a[s]); break; case 85: this.$ = a[s - 4], r.setClickEvent(a[s - 2], a[s], void 0); break; case 86: this.$ = a[s - 6], r.setClickEvent(a[s - 4], a[s - 2], a[s]); break; case 87: this.$ = a[s - 4], r.setLink(a[s - 2], a[s], void 0); break; case 88: this.$ = a[s - 6], r.setLink(a[s - 4], a[s - 2], a[s]); break; case 89: this.$ = a[s - 4], r.addVertex(a[s - 2], void 0, void 0, a[s]); break; case 90: case 92: this.$ = a[s - 4], r.updateLink(a[s - 2], a[s]); break; case 91: this.$ = a[s - 4], r.updateLink([a[s - 2]], a[s]); break; case 93: this.$ = a[s - 8], r.updateLinkInterpolate([a[s - 6]], a[s - 2]), r.updateLink([a[s - 6]], a[s]); break; case 94: this.$ = a[s - 8], r.updateLinkInterpolate(a[s - 6], a[s - 2]), r.updateLink(a[s - 6], a[s]); break; case 95: this.$ = a[s - 6], r.updateLinkInterpolate([a[s - 4]], a[s]); break; case 96: this.$ = a[s - 6], r.updateLinkInterpolate(a[s - 4], a[s]); break; case 97: case 99: this.$ = [a[s]]; break; case 98: case 100: a[s - 2].push(a[s]), this.$ = a[s - 2]; break; case 102: this.$ = a[s - 1] + a[s]; break; case 124: this.$ = a[s]; break; case 125: this.$ = a[s - 1] + "" + a[s]; break; case 130: this.$ = "v"; break; case 131: this.$ = "-" } }, table: [{ 3: 1, 4: 2, 9: e, 10: n, 12: r }, { 1: [3] }, t(i, a, { 5: 6 }), { 4: 7, 9: e, 10: n, 12: r }, { 4: 8, 9: e, 10: n, 12: r }, { 13: [1, 9] }, { 1: [2, 1], 6: 10, 7: 11, 8: o, 9: s, 10: u, 11: c, 19: 16, 21: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: f, 32: 23, 33: 29, 34: l, 36: 30, 61: h, 62: d, 63: p, 64: g, 65: y, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, t(i, [2, 9]), t(i, [2, 10]), { 8: [1, 48], 9: [1, 49], 10: N, 14: 47, 17: 50 }, t(I, [2, 3]), t(I, [2, 4]), t(I, [2, 5]), t(I, [2, 6]), t(I, [2, 7]), t(I, [2, 8]), { 8: L, 9: B, 11: O, 20: 52, 31: 53, 52: 57, 55: [1, 58], 56: [1, 59] }, { 8: L, 9: B, 11: O, 20: 60 }, { 8: L, 9: B, 11: O, 20: 61 }, { 8: L, 9: B, 11: O, 20: 62 }, { 8: L, 9: B, 11: O, 20: 63 }, { 8: L, 9: B, 11: O, 20: 64 }, { 8: L, 9: B, 10: [1, 65], 11: O, 20: 66 }, t(R, [2, 41], { 17: 67, 10: N }), { 10: [1, 68] }, { 10: [1, 69] }, { 10: [1, 70] }, { 10: [1, 71] }, { 10: [1, 72] }, t(P, [2, 42], { 35: [1, 73] }), t(F, [2, 58], { 89: 83, 28: [1, 74], 34: l, 37: [1, 75], 39: [1, 76], 41: [1, 77], 43: [1, 78], 45: [1, 79], 47: [1, 80], 48: [1, 81], 50: [1, 82], 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }), t(q, [2, 124]), t(q, [2, 145]), t(q, [2, 146]), t(q, [2, 147]), t(q, [2, 148]), t(q, [2, 149]), t(q, [2, 150]), t(q, [2, 151]), t(q, [2, 152]), t(q, [2, 153]), t(q, [2, 154]), t(q, [2, 155]), t(q, [2, 156]), t(q, [2, 157]), t(q, [2, 158]), t(q, [2, 159]), t(i, [2, 11]), t(i, [2, 17]), t(i, [2, 18]), { 9: [1, 84] }, t(j, [2, 25], { 17: 85, 10: N }), t(I, [2, 26]), { 32: 86, 33: 29, 34: l, 36: 30, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, t(I, [2, 35]), t(I, [2, 36]), t(I, [2, 37]), t(U, [2, 62], { 53: 87, 54: [1, 88], 57: [1, 89] }), { 10: z, 12: Y, 13: V, 26: H, 27: 90, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t([34, 54, 57, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], [2, 64]), t(I, [2, 27]), t(I, [2, 28]), t(I, [2, 29]), t(I, [2, 30]), t(I, [2, 31]), { 10: z, 12: Y, 13: V, 26: H, 27: 127, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(_t, a, { 5: 128 }), t(R, [2, 40], { 34: wt }), { 13: xt, 34: $, 66: kt, 72: 130, 73: [1, 131], 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 70: [1, 137], 74: 138, 76: [1, 139] }, { 13: xt, 34: $, 66: kt, 70: [1, 140], 72: 141, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 13: xt, 34: $, 66: kt, 72: 142, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 13: xt, 34: $, 66: kt, 72: 143, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 34: l, 36: 144, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, { 10: z, 12: Y, 13: V, 26: H, 27: 145, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 147, 30: G, 34: $, 37: [1, 146], 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 148, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 149, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 150, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 151, 30: G, 34: $, 45: [1, 152], 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 153, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 154, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 155, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(q, [2, 125]), t(i, [2, 19]), t(j, [2, 24]), t(R, [2, 38], { 17: 156, 10: N }), t(U, [2, 59], { 10: [1, 157] }), { 10: [1, 158] }, { 10: z, 12: Y, 13: V, 26: H, 27: 159, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 47: W, 55: K, 56: [1, 160], 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(At, [2, 66]), t(At, [2, 68]), t(At, [2, 114]), t(At, [2, 115]), t(At, [2, 116]), t(At, [2, 117]), t(At, [2, 118]), t(At, [2, 119]), t(At, [2, 120]), t(At, [2, 121]), t(At, [2, 122]), t(At, [2, 123]), t(At, [2, 132]), t(At, [2, 133]), t(At, [2, 134]), t(At, [2, 135]), t(At, [2, 136]), t(At, [2, 137]), t(At, [2, 138]), t(At, [2, 139]), t(At, [2, 140]), t(At, [2, 141]), t(At, [2, 142]), t(At, [2, 143]), t(At, [2, 144]), t(At, [2, 69]), t(At, [2, 70]), t(At, [2, 71]), t(At, [2, 72]), t(At, [2, 73]), t(At, [2, 74]), t(At, [2, 75]), t(At, [2, 76]), t(At, [2, 77]), t(At, [2, 78]), t(At, [2, 79]), { 8: L, 9: B, 10: z, 11: O, 12: Y, 13: V, 20: 163, 26: H, 28: [1, 162], 30: G, 34: $, 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 6: 10, 7: 11, 8: o, 9: s, 10: u, 11: c, 19: 16, 21: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: f, 30: [1, 164], 32: 23, 33: 29, 34: l, 36: 30, 61: h, 62: d, 63: p, 64: g, 65: y, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, { 10: N, 17: 165 }, { 10: [1, 166], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 167, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: [1, 168] }, t(St, [2, 126]), t(St, [2, 128]), t(St, [2, 129]), t(St, [2, 130]), t(St, [2, 131]), { 10: [1, 169] }, { 10: [1, 170], 77: [1, 171] }, t(Mt, [2, 97]), { 10: [1, 172] }, { 10: [1, 173], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 167, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: [1, 174], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 167, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: [1, 175], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 167, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(P, [2, 44], { 89: 83, 34: l, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }), { 10: z, 12: Y, 13: V, 26: H, 29: [1, 176], 30: G, 34: $, 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 177, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 38: [1, 178], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 40: [1, 179], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 42: [1, 180], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 44: [1, 181], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 46: [1, 182], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 27: 183, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 29: [1, 184], 30: G, 34: $, 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 47: W, 49: [1, 185], 51: [1, 186], 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 47: W, 49: [1, 188], 51: [1, 187], 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(R, [2, 39], { 34: wt }), t(U, [2, 61]), t(U, [2, 60]), { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 47: W, 55: K, 57: [1, 189], 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(U, [2, 63]), t(At, [2, 67]), { 10: z, 12: Y, 13: V, 26: H, 27: 190, 30: G, 34: $, 47: W, 55: K, 58: 91, 59: X, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(_t, a, { 5: 191 }), t(I, [2, 34]), { 33: 192, 34: l, 36: 30, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, { 10: Tt, 61: Dt, 71: 193, 73: Ct, 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, t(St, [2, 127]), { 10: Tt, 61: Dt, 71: 207, 73: Ct, 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, { 10: Tt, 61: Dt, 71: 208, 73: Ct, 75: [1, 209], 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, { 10: Tt, 61: Dt, 71: 210, 73: Ct, 75: [1, 211], 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, { 76: [1, 212] }, { 10: Tt, 61: Dt, 71: 213, 73: Ct, 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, { 10: Tt, 61: Dt, 71: 214, 73: Ct, 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, { 13: xt, 34: $, 66: kt, 72: 215, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 13: xt, 34: $, 59: [1, 217], 66: kt, 72: 216, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(F, [2, 45]), { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 38: [1, 218], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(F, [2, 50]), t(F, [2, 47]), t(F, [2, 48]), t(F, [2, 49]), t(F, [2, 51]), { 10: z, 12: Y, 13: V, 26: H, 30: G, 34: $, 46: [1, 219], 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, t(F, [2, 53]), t(F, [2, 54]), t(F, [2, 56]), t(F, [2, 55]), t(F, [2, 57]), t([10, 34, 66, 76, 77, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96], [2, 65]), { 10: z, 12: Y, 13: V, 26: H, 29: [1, 220], 30: G, 34: $, 47: W, 55: K, 58: 161, 60: 102, 61: Z, 62: J, 63: Q, 64: tt, 65: et, 66: nt, 67: rt, 69: 93, 70: it, 76: at, 77: ot, 80: st, 81: ut, 82: ct, 84: ft, 85: lt, 86: ht, 87: dt, 88: 99, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 6: 10, 7: 11, 8: o, 9: s, 10: u, 11: c, 19: 16, 21: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: f, 30: [1, 221], 32: 23, 33: 29, 34: l, 36: 30, 61: h, 62: d, 63: p, 64: g, 65: y, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, t(P, [2, 43]), t(qt, [2, 89], { 77: jt }), t(Ut, [2, 99], { 79: 223, 10: Tt, 61: Dt, 73: Ct, 76: Nt, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }), t(zt, [2, 101]), t(zt, [2, 103]), t(zt, [2, 104]), t(zt, [2, 105]), t(zt, [2, 106]), t(zt, [2, 107]), t(zt, [2, 108]), t(zt, [2, 109]), t(zt, [2, 110]), t(zt, [2, 111]), t(zt, [2, 112]), t(zt, [2, 113]), t(qt, [2, 90], { 77: jt }), t(qt, [2, 91], { 77: jt }), { 10: [1, 224] }, t(qt, [2, 92], { 77: jt }), { 10: [1, 225] }, t(Mt, [2, 98]), t(qt, [2, 82], { 77: jt }), t(qt, [2, 83], { 77: jt }), t(qt, [2, 84], { 88: 134, 90: 167, 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }), t(qt, [2, 85], { 88: 134, 90: 167, 10: [1, 226], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }), t(qt, [2, 87], { 10: [1, 227] }), { 38: [1, 228] }, { 46: [1, 229] }, { 8: L, 9: B, 11: O, 20: 230 }, t(I, [2, 33]), { 10: Tt, 61: Dt, 73: Ct, 76: Nt, 78: 231, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, t(zt, [2, 102]), { 13: xt, 34: $, 66: kt, 72: 232, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 13: xt, 34: $, 66: kt, 72: 233, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 88: 134, 90: 132, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }, { 59: [1, 234] }, { 59: [1, 235] }, t(F, [2, 46]), t(F, [2, 52]), t(_t, a, { 5: 236 }), t(Ut, [2, 100], { 79: 223, 10: Tt, 61: Dt, 73: Ct, 76: Nt, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }), t(qt, [2, 95], { 88: 134, 90: 167, 10: [1, 237], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }), t(qt, [2, 96], { 88: 134, 90: 167, 10: [1, 238], 13: xt, 34: $, 66: kt, 76: at, 77: ot, 80: st, 81: ut, 82: Et, 84: ft, 85: lt, 91: pt, 92: gt, 93: yt, 94: bt, 95: vt, 96: mt }), t(qt, [2, 86]), t(qt, [2, 88]), { 6: 10, 7: 11, 8: o, 9: s, 10: u, 11: c, 19: 16, 21: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: f, 30: [1, 239], 32: 23, 33: 29, 34: l, 36: 30, 61: h, 62: d, 63: p, 64: g, 65: y, 66: b, 76: v, 77: m, 80: _, 81: w, 82: x, 84: k, 85: E, 89: 31, 91: A, 92: S, 93: M, 94: T, 95: D, 96: C }, { 10: Tt, 61: Dt, 71: 240, 73: Ct, 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, { 10: Tt, 61: Dt, 71: 241, 73: Ct, 76: Nt, 78: 194, 79: 195, 80: It, 81: Lt, 82: Bt, 83: Ot, 84: Rt, 85: Pt, 86: Ft }, t(I, [2, 32]), t(qt, [2, 93], { 77: jt }), t(qt, [2, 94], { 77: jt })], defaultActions: {}, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, Vt = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: {}, performAction: function(t, e, n, r) { switch (n) { case 0: break; case 1: this.begin("string"); break; case 2: this.popState(); break; case 3: return "STR"; case 4: return 61; case 5: return 70; case 6: return 62; case 7: return 75; case 8: return 63; case 9: return 64; case 10: return 65; case 11: return t.lex.firstGraph() && this.begin("dir"), 12; case 12: return 26; case 13: return 30; case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: return this.popState(), 13; case 24: return 76; case 25: return 84; case 26: return 35; case 27: return 81; case 28: return 34; case 29: return 8; case 30: return 77; case 31: return 95; case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: case 40: case 41: case 42: case 43: case 44: case 45: case 46: case 47: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 58: case 59: return 56; case 60: case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: case 70: case 71: return 55; case 72: return 39; case 73: return 40; case 74: return 41; case 75: return 42; case 76: return 43; case 77: return 44; case 78: return 82; case 79: return 85; case 80: return 96; case 81: return 93; case 82: return 86; case 83: case 84: return 94; case 85: return 87; case 86: return 47; case 87: return 67; case 88: return "SEP"; case 89: return 66; case 90: return 80; case 91: return 49; case 92: return 48; case 93: return 51; case 94: return 50; case 95: return 91; case 96: return 92; case 97: return 57; case 98: return 37; case 99: return 38; case 100: return 28; case 101: return 29; case 102: return 45; case 103: return 46; case 104: return 102; case 105: return 9; case 106: return 10; case 107: return 11 } }, rules: [/^(?:%%[^\n]*\n*)/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:click\b)/, /^(?:graph\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*--[x]\s*)/, /^(?:\s*-->\s*)/, /^(?:\s*<-->\s*)/, /^(?:\s*[x]--[x]\s*)/, /^(?:\s*[o]--[o]\s*)/, /^(?:\s*[o]\.-[o]\s*)/, /^(?:\s*<==>\s*)/, /^(?:\s*[o]==[o]\s*)/, /^(?:\s*[x]==[x]\s*)/, /^(?:\s*[x].-[x]\s*)/, /^(?:\s*[x]-\.-[x]\s*)/, /^(?:\s*<\.->\s*)/, /^(?:\s*<-\.->\s*)/, /^(?:\s*[o]-\.-[o]\s*)/, /^(?:\s*--[o]\s*)/, /^(?:\s*---\s*)/, /^(?:\s*-\.-[x]\s*)/, /^(?:\s*-\.->\s*)/, /^(?:\s*-\.-[o]\s*)/, /^(?:\s*-\.-\s*)/, /^(?:\s*.-[x]\s*)/, /^(?:\s*\.->\s*)/, /^(?:\s*\.-[o]\s*)/, /^(?:\s*\.-\s*)/, /^(?:\s*==[x]\s*)/, /^(?:\s*==>\s*)/, /^(?:\s*==[o]\s*)/, /^(?:\s*==[\=]\s*)/, /^(?:\s*<--\s*)/, /^(?:\s*[x]--\s*)/, /^(?:\s*[o]--\s*)/, /^(?:\s*<-\.\s*)/, /^(?:\s*[x]-\.\s*)/, /^(?:\s*[o]-\.\s*)/, /^(?:\s*<==\s*)/, /^(?:\s*[x]==\s*)/, /^(?:\s*[o]==\s*)/, /^(?:\s*--\s*)/, /^(?:\s*-\.\s*)/, /^(?:\s*==\s*)/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\[)/, /^(?:\]\))/, /^(?:\[\()/, /^(?:\)\])/, /^(?:-)/, /^(?:\.)/, /^(?:[\_])/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:[A-Za-z]+)/, /^(?:\\\])/, /^(?:\[\/)/, /^(?:\/\])/, /^(?:\[\\)/, /^(?:[!"#$%&'*+,-.`?\\_\/])/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\()/, /^(?:\))/, /^(?:\[)/, /^(?:\])/, /^(?:\{)/, /^(?:\})/, /^(?:")/, /^(?:(\r|\n|\r\n)+)/, /^(?:\s)/, /^(?:$)/], conditions: { vertex: { rules: [], inclusive: !1 }, dir: { rules: [14, 15, 16, 17, 18, 19, 20, 21, 22, 23], inclusive: !1 }, string: { rules: [2, 3], inclusive: !1 }, INITIAL: { rules: [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107], inclusive: !0 } } }; function Ht() { this.yy = {} } return Yt.lexer = Vt, Ht.prototype = Yt, Yt.Parser = Ht, new Ht }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e, n) { var r = n(62), i = n(243), a = n(244), o = n(245), s = n(246), u = n(247); function c(t) { var e = this.__data__ = new r(t); this.size = e.size } c.prototype.clear = i, c.prototype.delete = a, c.prototype.get = o, c.prototype.has = s, c.prototype.set = u, t.exports = c }, function(t, e, n) { var r = n(238), i = n(239), a = n(240), o = n(241), s = n(242); function u(t) { var e = -1, n = null == t ? 0 : t.length; for (this.clear(); ++e < n;) { var r = t[e]; this.set(r[0], r[1]) } } u.prototype.clear = r, u.prototype.delete = i, u.prototype.get = a, u.prototype.has = o, u.prototype.set = s, t.exports = u }, function(t, e, n) { var r = n(36); t.exports = function(t, e) { for (var n = t.length; n--;) if (r(t[n][0], e)) return n; return -1 } }, function(t, e, n) { var r = n(32)(Object, "create"); t.exports = r }, function(t, e, n) { var r = n(262); t.exports = function(t, e) { var n = t.__data__; return r(e) ? n["string" == typeof e ? "string" : "hash"] : n.map } }, function(t, e, n) { var r = n(67), i = n(36), a = Object.prototype.hasOwnProperty; t.exports = function(t, e, n) { var o = t[e]; a.call(t, e) && i(o, n) && (void 0 !== n || e in t) || r(t, e, n) } }, function(t, e, n) { var r = n(133); t.exports = function(t, e, n) { "__proto__" == e && r ? r(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 }) : t[e] = n } }, function(t, e) { var n = 9007199254740991, r = /^(?:0|[1-9]\d*)$/; t.exports = function(t, e) { var i = typeof t; return !!(e = null == e ? n : e) && ("number" == i || "symbol" != i && r.test(t)) && t > -1 && t % 1 == 0 && t < e } }, function(t, e) { t.exports = function(t) { return function(e) { return t(e) } } }, function(t, e) { var n = Object.prototype; t.exports = function(t) { var e = t && t.constructor; return t === ("function" == typeof e && e.prototype || n) } }, function(t, e, n) { var r = n(135)(Object.getPrototypeOf, Object); t.exports = r }, function(t, e, n) { var r = n(101), i = n(291)(r); t.exports = i }, function(t, e, n) { var r = n(6), i = n(105), a = n(305), o = n(157); t.exports = function(t, e) { return r(t) ? t : i(t, e) ? [t] : a(o(t)) } }, function(t, e) { t.exports = function(t, e) { for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r;) i[n] = e(t[n], n, t); return i } }, function(t, e, n) { var r = n(34), i = n(165), a = n(166); t.exports = function(t, e) { return a(i(t, e, r), t + "") } }, function(t, e, n) { var r = n(36), i = n(23), a = n(68), o = n(14); t.exports = function(t, e, n) { if (!o(n)) return !1; var s = typeof e; return !!("number" == s ? i(n) && a(e, n.length) : "string" == s && e in n) && r(n[e], t) } }, function(t, e, n) { "use strict"; var r = n(4); t.exports = { longestPath: function(t) { var e = {}; r.forEach(t.sources(), (function n(i) { var a = t.node(i); if (r.has(e, i)) return a.rank; e[i] = !0; var o = r.min(r.map(t.outEdges(i), (function(e) { return n(e.w) - t.edge(e).minlen }))); return o !== Number.POSITIVE_INFINITY && null != o || (o = 0), a.rank = o })) }, slack: function(t, e) { return t.node(e.w).rank - t.node(e.v).rank - t.edge(e).minlen } } }, function(t, e, n) { "use strict"; (function(e) { void 0 === e || !e.version || 0 === e.version.indexOf("v0.") || 0 === e.version.indexOf("v1.") && 0 !== e.version.indexOf("v1.8.") ? t.exports = { nextTick: function(t, n, r, i) { if ("function" != typeof t) throw new TypeError('"callback" argument must be a function'); var a, o, s = arguments.length; switch (s) { case 0: case 1: return e.nextTick(t); case 2: return e.nextTick((function() { t.call(null, n) })); case 3: return e.nextTick((function() { t.call(null, n, r) })); case 4: return e.nextTick((function() { t.call(null, n, r, i) })); default: for (a = new Array(s - 1), o = 0; o < a.length;) a[o++] = arguments[o]; return e.nextTick((function() { t.apply(null, a) })) } } } : t.exports = e }).call(this, n(7)) }, function(t, e, n) { var r = n(3).Buffer; function i(t) { r.isBuffer(t) || (t = r.from(t)); for (var e = t.length / 4 | 0, n = new Array(e), i = 0; i < e; i++) n[i] = t.readUInt32BE(4 * i); return n } function a(t) { for (; 0 < t.length; t++) t[0] = 0 } function o(t, e, n, r, i) { for (var a, o, s, u, c = n[0], f = n[1], l = n[2], h = n[3], d = t[0] ^ e[0], p = t[1] ^ e[1], g = t[2] ^ e[2], y = t[3] ^ e[3], b = 4, v = 1; v < i; v++) a = c[d >>> 24] ^ f[p >>> 16 & 255] ^ l[g >>> 8 & 255] ^ h[255 & y] ^ e[b++], o = c[p >>> 24] ^ f[g >>> 16 & 255] ^ l[y >>> 8 & 255] ^ h[255 & d] ^ e[b++], s = c[g >>> 24] ^ f[y >>> 16 & 255] ^ l[d >>> 8 & 255] ^ h[255 & p] ^ e[b++], u = c[y >>> 24] ^ f[d >>> 16 & 255] ^ l[p >>> 8 & 255] ^ h[255 & g] ^ e[b++], d = a, p = o, g = s, y = u; return a = (r[d >>> 24] << 24 | r[p >>> 16 & 255] << 16 | r[g >>> 8 & 255] << 8 | r[255 & y]) ^ e[b++], o = (r[p >>> 24] << 24 | r[g >>> 16 & 255] << 16 | r[y >>> 8 & 255] << 8 | r[255 & d]) ^ e[b++], s = (r[g >>> 24] << 24 | r[y >>> 16 & 255] << 16 | r[d >>> 8 & 255] << 8 | r[255 & p]) ^ e[b++], u = (r[y >>> 24] << 24 | r[d >>> 16 & 255] << 16 | r[p >>> 8 & 255] << 8 | r[255 & g]) ^ e[b++], [a >>>= 0, o >>>= 0, s >>>= 0, u >>>= 0] } var s = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], u = function() { for (var t = new Array(256), e = 0; e < 256; e++) t[e] = e < 128 ? e << 1 : e << 1 ^ 283; for (var n = [], r = [], i = [ [], [], [], [] ], a = [ [], [], [], [] ], o = 0, s = 0, u = 0; u < 256; ++u) { var c = s ^ s << 1 ^ s << 2 ^ s << 3 ^ s << 4; c = c >>> 8 ^ 255 & c ^ 99, n[o] = c, r[c] = o; var f = t[o], l = t[f], h = t[l], d = 257 * t[c] ^ 16843008 * c; i[0][o] = d << 24 | d >>> 8, i[1][o] = d << 16 | d >>> 16, i[2][o] = d << 8 | d >>> 24, i[3][o] = d, d = 16843009 * h ^ 65537 * l ^ 257 * f ^ 16843008 * o, a[0][c] = d << 24 | d >>> 8, a[1][c] = d << 16 | d >>> 16, a[2][c] = d << 8 | d >>> 24, a[3][c] = d, 0 === o ? o = s = 1 : (o = f ^ t[t[t[h ^ f]]], s ^= t[t[s]]) } return { SBOX: n, INV_SBOX: r, SUB_MIX: i, INV_SUB_MIX: a } }(); function c(t) { this._key = i(t), this._reset() } c.blockSize = 16, c.keySize = 32, c.prototype.blockSize = c.blockSize, c.prototype.keySize = c.keySize, c.prototype._reset = function() { for (var t = this._key, e = t.length, n = e + 6, r = 4 * (n + 1), i = [], a = 0; a < e; a++) i[a] = t[a]; for (a = e; a < r; a++) { var o = i[a - 1]; a % e == 0 ? (o = o << 8 | o >>> 24, o = u.SBOX[o >>> 24] << 24 | u.SBOX[o >>> 16 & 255] << 16 | u.SBOX[o >>> 8 & 255] << 8 | u.SBOX[255 & o], o ^= s[a / e | 0] << 24) : e > 6 && a % e == 4 && (o = u.SBOX[o >>> 24] << 24 | u.SBOX[o >>> 16 & 255] << 16 | u.SBOX[o >>> 8 & 255] << 8 | u.SBOX[255 & o]), i[a] = i[a - e] ^ o } for (var c = [], f = 0; f < r; f++) { var l = r - f, h = i[l - (f % 4 ? 0 : 4)]; c[f] = f < 4 || l <= 4 ? h : u.INV_SUB_MIX[0][u.SBOX[h >>> 24]] ^ u.INV_SUB_MIX[1][u.SBOX[h >>> 16 & 255]] ^ u.INV_SUB_MIX[2][u.SBOX[h >>> 8 & 255]] ^ u.INV_SUB_MIX[3][u.SBOX[255 & h]] } this._nRounds = n, this._keySchedule = i, this._invKeySchedule = c }, c.prototype.encryptBlockRaw = function(t) { return o(t = i(t), this._keySchedule, u.SUB_MIX, u.SBOX, this._nRounds) }, c.prototype.encryptBlock = function(t) { var e = this.encryptBlockRaw(t), n = r.allocUnsafe(16); return n.writeUInt32BE(e[0], 0), n.writeUInt32BE(e[1], 4), n.writeUInt32BE(e[2], 8), n.writeUInt32BE(e[3], 12), n }, c.prototype.decryptBlock = function(t) { var e = (t = i(t))[1]; t[1] = t[3], t[3] = e; var n = o(t, this._invKeySchedule, u.INV_SUB_MIX, u.INV_SBOX, this._nRounds), a = r.allocUnsafe(16); return a.writeUInt32BE(n[0], 0), a.writeUInt32BE(n[3], 4), a.writeUInt32BE(n[2], 8), a.writeUInt32BE(n[1], 12), a }, c.prototype.scrub = function() { a(this._keySchedule), a(this._invKeySchedule), a(this._key) }, t.exports.AES = c }, function(t, e, n) { var r = n(3).Buffer, i = n(111); t.exports = function(t, e, n, a) { if (r.isBuffer(t) || (t = r.from(t, "binary")), e && (r.isBuffer(e) || (e = r.from(e, "binary")), 8 !== e.length)) throw new RangeError("salt should be Buffer with 8 byte length"); for (var o = n / 8, s = r.alloc(o), u = r.alloc(a || 0), c = r.alloc(0); o > 0 || a > 0;) { var f = new i; f.update(c), f.update(t), e && f.update(e), c = f.digest(); var l = 0; if (o > 0) { var h = s.length - o; l = Math.min(o, c.length), c.copy(s, h, 0, l), o -= l } if (l < c.length && a > 0) { var d = u.length - a, p = Math.min(a, c.length - l); c.copy(u, d, l, l + p), a -= p } } return c.fill(0), { key: s, iv: u } } }, function(t, e, n) { "use strict"; var r = n(5), i = n(17), a = i.getNAF, o = i.getJSF, s = i.assert; function u(t, e) { this.type = t, this.p = new r(e.p, 16), this.red = e.prime ? r.red(e.prime) : r.mont(this.p), this.zero = new r(0).toRed(this.red), this.one = new r(1).toRed(this.red), this.two = new r(2).toRed(this.red), this.n = e.n && new r(e.n, 16), this.g = e.g && this.pointFromJSON(e.g, e.gRed), this._wnafT1 = new Array(4), this._wnafT2 = new Array(4), this._wnafT3 = new Array(4), this._wnafT4 = new Array(4), this._bitLength = this.n ? this.n.bitLength() : 0; var n = this.n && this.p.div(this.n); !n || n.cmpn(100) > 0 ? this.redN = null : (this._maxwellTrick = !0, this.redN = this.n.toRed(this.red)) } function c(t, e) { this.curve = t, this.type = e, this.precomputed = null } t.exports = u, u.prototype.point = function() { throw new Error("Not implemented") }, u.prototype.validate = function() { throw new Error("Not implemented") }, u.prototype._fixedNafMul = function(t, e) { s(t.precomputed); var n = t._getDoubles(), r = a(e, 1, this._bitLength), i = (1 << n.step + 1) - (n.step % 2 == 0 ? 2 : 1); i /= 3; for (var o = [], u = 0; u < r.length; u += n.step) { var c = 0; for (e = u + n.step - 1; e >= u; e--) c = (c << 1) + r[e]; o.push(c) } for (var f = this.jpoint(null, null, null), l = this.jpoint(null, null, null), h = i; h > 0; h--) { for (u = 0; u < o.length; u++) { (c = o[u]) === h ? l = l.mixedAdd(n.points[u]) : c === -h && (l = l.mixedAdd(n.points[u].neg())) } f = f.add(l) } return f.toP() }, u.prototype._wnafMul = function(t, e) { var n = 4, r = t._getNAFPoints(n); n = r.wnd; for (var i = r.points, o = a(e, n, this._bitLength), u = this.jpoint(null, null, null), c = o.length - 1; c >= 0; c--) { for (e = 0; c >= 0 && 0 === o[c]; c--) e++; if (c >= 0 && e++, u = u.dblp(e), c < 0) break; var f = o[c]; s(0 !== f), u = "affine" === t.type ? f > 0 ? u.mixedAdd(i[f - 1 >> 1]) : u.mixedAdd(i[-f - 1 >> 1].neg()) : f > 0 ? u.add(i[f - 1 >> 1]) : u.add(i[-f - 1 >> 1].neg()) } return "affine" === t.type ? u.toP() : u }, u.prototype._wnafMulAdd = function(t, e, n, r, i) { for (var s = this._wnafT1, u = this._wnafT2, c = this._wnafT3, f = 0, l = 0; l < r; l++) { var h = (A = e[l])._getNAFPoints(t); s[l] = h.wnd, u[l] = h.points } for (l = r - 1; l >= 1; l -= 2) { var d = l - 1, p = l; if (1 === s[d] && 1 === s[p]) { var g = [e[d], null, null, e[p]]; 0 === e[d].y.cmp(e[p].y) ? (g[1] = e[d].add(e[p]), g[2] = e[d].toJ().mixedAdd(e[p].neg())) : 0 === e[d].y.cmp(e[p].y.redNeg()) ? (g[1] = e[d].toJ().mixedAdd(e[p]), g[2] = e[d].add(e[p].neg())) : (g[1] = e[d].toJ().mixedAdd(e[p]), g[2] = e[d].toJ().mixedAdd(e[p].neg())); var y = [-3, -1, -5, -7, 0, 7, 5, 1, 3], b = o(n[d], n[p]); f = Math.max(b[0].length, f), c[d] = new Array(f), c[p] = new Array(f); for (var v = 0; v < f; v++) { var m = 0 | b[0][v], _ = 0 | b[1][v]; c[d][v] = y[3 * (m + 1) + (_ + 1)], c[p][v] = 0, u[d] = g } } else c[d] = a(n[d], s[d], this._bitLength), c[p] = a(n[p], s[p], this._bitLength), f = Math.max(c[d].length, f), f = Math.max(c[p].length, f) } var w = this.jpoint(null, null, null), x = this._wnafT4; for (l = f; l >= 0; l--) { for (var k = 0; l >= 0;) { var E = !0; for (v = 0; v < r; v++) x[v] = 0 | c[v][l], 0 !== x[v] && (E = !1); if (!E) break; k++, l-- } if (l >= 0 && k++, w = w.dblp(k), l < 0) break; for (v = 0; v < r; v++) { var A, S = x[v]; 0 !== S && (S > 0 ? A = u[v][S - 1 >> 1] : S < 0 && (A = u[v][-S - 1 >> 1].neg()), w = "affine" === A.type ? w.mixedAdd(A) : w.add(A)) } } for (l = 0; l < r; l++) u[l] = null; return i ? w : w.toP() }, u.BasePoint = c, c.prototype.eq = function() { throw new Error("Not implemented") }, c.prototype.validate = function() { return this.curve.validate(this) }, u.prototype.decodePoint = function(t, e) { t = i.toArray(t, e); var n = this.p.byteLength(); if ((4 === t[0] || 6 === t[0] || 7 === t[0]) && t.length - 1 == 2 * n) return 6 === t[0] ? s(t[t.length - 1] % 2 == 0) : 7 === t[0] && s(t[t.length - 1] % 2 == 1), this.point(t.slice(1, 1 + n), t.slice(1 + n, 1 + 2 * n)); if ((2 === t[0] || 3 === t[0]) && t.length - 1 === n) return this.pointFromX(t.slice(1, 1 + n), 3 === t[0]); throw new Error("Unknown point format") }, c.prototype.encodeCompressed = function(t) { return this.encode(t, !0) }, c.prototype._encode = function(t) { var e = this.curve.p.byteLength(), n = this.getX().toArray("be", e); return t ? [this.getY().isEven() ? 2 : 3].concat(n) : [4].concat(n, this.getY().toArray("be", e)) }, c.prototype.encode = function(t, e) { return i.encode(this._encode(e), t) }, c.prototype.precompute = function(t) { if (this.precomputed) return this; var e = { doubles: null, naf: null, beta: null }; return e.naf = this._getNAFPoints(8), e.doubles = this._getDoubles(4, t), e.beta = this._getBeta(), this.precomputed = e, this }, c.prototype._hasDoubles = function(t) { if (!this.precomputed) return !1; var e = this.precomputed.doubles; return !!e && e.points.length >= Math.ceil((t.bitLength() + 1) / e.step) }, c.prototype._getDoubles = function(t, e) { if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles; for (var n = [this], r = this, i = 0; i < e; i += t) { for (var a = 0; a < t; a++) r = r.dbl(); n.push(r) } return { step: t, points: n } }, c.prototype._getNAFPoints = function(t) { if (this.precomputed && this.precomputed.naf) return this.precomputed.naf; for (var e = [this], n = (1 << t) - 1, r = 1 === n ? null : this.dbl(), i = 1; i < n; i++) e[i] = e[i - 1].add(r); return { wnd: t, points: e } }, c.prototype._getBeta = function() { return null }, c.prototype.dblp = function(t) { for (var e = this, n = 0; n < t; n++) e = e.dbl(); return e } }, function(t, e, n) { var r = n(481), i = n(492), a = n(493), o = n(121), s = n(202), u = n(3).Buffer; function c(t) { var e; "object" != typeof t || u.isBuffer(t) || (e = t.passphrase, t = t.key), "string" == typeof t && (t = u.from(t)); var n, c, f = a(t, e), l = f.tag, h = f.data; switch (l) { case "CERTIFICATE": c = r.certificate.decode(h, "der").tbsCertificate.subjectPublicKeyInfo; case "PUBLIC KEY": switch (c || (c = r.PublicKey.decode(h, "der")), n = c.algorithm.algorithm.join(".")) { case "1.2.840.113549.1.1.1": return r.RSAPublicKey.decode(c.subjectPublicKey.data, "der"); case "1.2.840.10045.2.1": return c.subjectPrivateKey = c.subjectPublicKey, { type: "ec", data: c }; case "1.2.840.10040.4.1": return c.algorithm.params.pub_key = r.DSAparam.decode(c.subjectPublicKey.data, "der"), { type: "dsa", data: c.algorithm.params }; default: throw new Error("unknown key id " + n) } throw new Error("unknown key type " + l); case "ENCRYPTED PRIVATE KEY": h = function(t, e) { var n = t.algorithm.decrypt.kde.kdeparams.salt, r = parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(), 10), a = i[t.algorithm.decrypt.cipher.algo.join(".")], c = t.algorithm.decrypt.cipher.iv, f = t.subjectPrivateKey, l = parseInt(a.split("-")[1], 10) / 8, h = s.pbkdf2Sync(e, n, r, l, "sha1"), d = o.createDecipheriv(a, h, c), p = []; return p.push(d.update(f)), p.push(d.final()), u.concat(p) }(h = r.EncryptedPrivateKey.decode(h, "der"), e); case "PRIVATE KEY": switch (n = (c = r.PrivateKey.decode(h, "der")).algorithm.algorithm.join(".")) { case "1.2.840.113549.1.1.1": return r.RSAPrivateKey.decode(c.subjectPrivateKey, "der"); case "1.2.840.10045.2.1": return { curve: c.algorithm.curve, privateKey: r.ECPrivateKey.decode(c.subjectPrivateKey, "der").privateKey }; case "1.2.840.10040.4.1": return c.algorithm.params.priv_key = r.DSAparam.decode(c.subjectPrivateKey, "der"), { type: "dsa", params: c.algorithm.params }; default: throw new Error("unknown key id " + n) } throw new Error("unknown key type " + l); case "RSA PUBLIC KEY": return r.RSAPublicKey.decode(h, "der"); case "RSA PRIVATE KEY": return r.RSAPrivateKey.decode(h, "der"); case "DSA PRIVATE KEY": return { type: "dsa", params: r.DSAPrivateKey.decode(h, "der") }; case "EC PRIVATE KEY": return { curve: (h = r.ECPrivateKey.decode(h, "der")).parameters.value, privateKey: h.privateKey }; default: throw new Error("unknown key type " + l) } } t.exports = c, c.signature = r.signature }, function(t, e, n) { "use strict"; t.exports = function(t) { var e = []; return e.toString = function() { return this.map((function(e) { var n = function(t, e) { var n = t[1] || "", r = t[3]; if (!r) return n; if (e && "function" == typeof btoa) { var i = (o = r, "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(o)))) + " */"), a = r.sources.map((function(t) { return "/*# sourceURL=" + r.sourceRoot + t + " */" })); return [n].concat(a).concat([i]).join("\n") } var o; return [n].join("\n") }(e, t); return e[2] ? "@media " + e[2] + "{" + n + "}" : n })).join("") }, e.i = function(t, n) { "string" == typeof t && (t = [ [null, t, ""] ]); for (var r = {}, i = 0; i < this.length; i++) { var a = this[i][0]; null != a && (r[a] = !0) } for (i = 0; i < t.length; i++) { var o = t[i]; null != o[0] && r[o[0]] || (n && !o[2] ? o[2] = n : n && (o[2] = "(" + o[2] + ") and (" + n + ")"), e.push(o)) } }, e } }, function(t, e, n) { "use strict"; var r = /^(%20|\s)*(javascript|data)/im, i = /[^\x20-\x7E]/gim, a = /^([^:]+):/gm, o = [".", "/"]; t.exports = { sanitizeUrl: function(t) { if (!t) return "about:blank"; var e, n, s = t.replace(i, "").trim(); return function(t) { return o.indexOf(t[0]) > -1 }(s) ? s : (n = s.match(a)) ? (e = n[0], r.test(e) ? "about:blank" : s) : "about:blank" } } }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [2, 3], n = [1, 7], r = [7, 12, 15, 17, 19, 20, 21], i = [7, 11, 12, 15, 17, 19, 20, 21], a = [2, 20], o = [1, 32], s = { trace: function() {}, yy: {}, symbols_: { error: 2, start: 3, GG: 4, ":": 5, document: 6, EOF: 7, DIR: 8, options: 9, body: 10, OPT: 11, NL: 12, line: 13, statement: 14, COMMIT: 15, commit_arg: 16, BRANCH: 17, ID: 18, CHECKOUT: 19, MERGE: 20, RESET: 21, reset_arg: 22, STR: 23, HEAD: 24, reset_parents: 25, CARET: 26, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "GG", 5: ":", 7: "EOF", 8: "DIR", 11: "OPT", 12: "NL", 15: "COMMIT", 17: "BRANCH", 18: "ID", 19: "CHECKOUT", 20: "MERGE", 21: "RESET", 23: "STR", 24: "HEAD", 26: "CARET" }, productions_: [0, [3, 4], [3, 5], [6, 0], [6, 2], [9, 2], [9, 1], [10, 0], [10, 2], [13, 2], [13, 1], [14, 2], [14, 2], [14, 2], [14, 2], [14, 2], [16, 0], [16, 1], [22, 2], [22, 2], [25, 0], [25, 2] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 1: return a[s - 1]; case 2: return r.setDirection(a[s - 3]), a[s - 1]; case 4: r.setOptions(a[s - 1]), this.$ = a[s]; break; case 5: a[s - 1] += a[s], this.$ = a[s - 1]; break; case 7: this.$ = []; break; case 8: a[s - 1].push(a[s]), this.$ = a[s - 1]; break; case 9: this.$ = a[s - 1]; break; case 11: r.commit(a[s]); break; case 12: r.branch(a[s]); break; case 13: r.checkout(a[s]); break; case 14: r.merge(a[s]); break; case 15: r.reset(a[s]); break; case 16: this.$ = ""; break; case 17: this.$ = a[s]; break; case 18: this.$ = a[s - 1] + ":" + a[s]; break; case 19: this.$ = a[s - 1] + ":" + r.count, r.count = 0; break; case 20: r.count = 0; break; case 21: r.count += 1 } }, table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3], 8: [1, 4] }, { 6: 5, 7: e, 9: 6, 12: n }, { 5: [1, 8] }, { 7: [1, 9] }, t(r, [2, 7], { 10: 10, 11: [1, 11] }), t(i, [2, 6]), { 6: 12, 7: e, 9: 6, 12: n }, { 1: [2, 1] }, { 7: [2, 4], 12: [1, 15], 13: 13, 14: 14, 15: [1, 16], 17: [1, 17], 19: [1, 18], 20: [1, 19], 21: [1, 20] }, t(i, [2, 5]), { 7: [1, 21] }, t(r, [2, 8]), { 12: [1, 22] }, t(r, [2, 10]), { 12: [2, 16], 16: 23, 23: [1, 24] }, { 18: [1, 25] }, { 18: [1, 26] }, { 18: [1, 27] }, { 18: [1, 30], 22: 28, 24: [1, 29] }, { 1: [2, 2] }, t(r, [2, 9]), { 12: [2, 11] }, { 12: [2, 17] }, { 12: [2, 12] }, { 12: [2, 13] }, { 12: [2, 14] }, { 12: [2, 15] }, { 12: a, 25: 31, 26: o }, { 12: a, 25: 33, 26: o }, { 12: [2, 18] }, { 12: a, 25: 34, 26: o }, { 12: [2, 19] }, { 12: [2, 21] }], defaultActions: { 9: [2, 1], 21: [2, 2], 23: [2, 11], 24: [2, 17], 25: [2, 12], 26: [2, 13], 27: [2, 14], 28: [2, 15], 31: [2, 18], 33: [2, 19], 34: [2, 21] }, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, u = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: { "case-insensitive": !0 }, performAction: function(t, e, n, r) { switch (n) { case 0: return 12; case 1: case 2: case 3: break; case 4: return 4; case 5: return 15; case 6: return 17; case 7: return 20; case 8: return 21; case 9: return 19; case 10: case 11: return 8; case 12: return 5; case 13: return 26; case 14: this.begin("options"); break; case 15: this.popState(); break; case 16: return 11; case 17: this.begin("string"); break; case 18: this.popState(); break; case 19: return 23; case 20: return 18; case 21: return 7 } }, rules: [/^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit\b)/i, /^(?:branch\b)/i, /^(?:merge\b)/i, /^(?:reset\b)/i, /^(?:checkout\b)/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:end\r?\n)/i, /^(?:[^\n]+\r?\n)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[a-zA-Z][a-zA-Z0-9_]+)/i, /^(?:$)/i], conditions: { options: { rules: [15, 16], inclusive: !1 }, string: { rules: [18, 19], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 20, 21], inclusive: !0 } } }; function c() { this.yy = {} } return s.lexer = u, c.prototype = s, s.Parser = c, new c }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [6, 9, 10], n = { trace: function() {}, yy: {}, symbols_: { error: 2, start: 3, info: 4, document: 5, EOF: 6, line: 7, statement: 8, NL: 9, showInfo: 10, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" }, productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1] ], performAction: function(t, e, n, r, i, a, o) { a.length; switch (i) { case 1: return r; case 4: break; case 6: r.setInfo(!0) } }, table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, t(e, [2, 3]), t(e, [2, 4]), t(e, [2, 5]), t(e, [2, 6])], defaultActions: { 4: [2, 1] }, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, r = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: { "case-insensitive": !0 }, performAction: function(t, e, n, r) { switch (n) { case 0: return 4; case 1: return 9; case 2: return "space"; case 3: return 10; case 4: return 6; case 5: return "TXT" } }, rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i], conditions: { INITIAL: { rules: [0, 1, 2, 3, 4, 5], inclusive: !0 } } }; function i() { this.yy = {} } return n.lexer = r, i.prototype = n, n.Parser = i, new i }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t, e, n) { (function(t, r) { var i = function() { var t = function(t, e, n, r) { for (n = n || {}, r = t.length; r--; n[t[r]] = e); return n }, e = [6, 9, 10, 12], n = { trace: function() {}, yy: {}, symbols_: { error: 2, start: 3, pie: 4, document: 5, EOF: 6, line: 7, statement: 8, NL: 9, STR: 10, VALUE: 11, title: 12, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "pie", 6: "EOF", 9: "NL", 10: "STR", 11: "VALUE", 12: "title" }, productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 2], [8, 1] ], performAction: function(t, e, n, r, i, a, o) { var s = a.length - 1; switch (i) { case 4: break; case 6: r.addSection(a[s - 1], r.cleanupValue(a[s])); break; case 7: r.setTitle(a[s].substr(6)), this.$ = a[s].substr(6) } }, table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8], 12: [1, 9] }, { 1: [2, 1] }, t(e, [2, 3]), t(e, [2, 4]), t(e, [2, 5]), { 11: [1, 10] }, t(e, [2, 7]), t(e, [2, 6])], defaultActions: { 4: [2, 1] }, parseError: function(t, e) { if (!e.recoverable) { var n = new Error(t); throw n.hash = e, n } this.trace(t) }, parse: function(t) { var e = this, n = [0], r = [], i = [null], a = [], o = this.table, s = "", u = 0, c = 0, f = 0, l = 2, h = 1, d = a.slice.call(arguments, 1), p = Object.create(this.lexer), g = { yy: {} }; for (var y in this.yy) Object.prototype.hasOwnProperty.call(this.yy, y) && (g.yy[y] = this.yy[y]); p.setInput(t, g.yy), g.yy.lexer = p, g.yy.parser = this, void 0 === p.yylloc && (p.yylloc = {}); var b = p.yylloc; a.push(b); var v = p.options && p.options.ranges; function m() { var t; return "number" != typeof(t = r.pop() || p.lex() || h) && (t instanceof Array && (t = (r = t).pop()), t = e.symbols_[t] || t), t } "function" == typeof g.yy.parseError ? this.parseError = g.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; for (var _, w, x, k, E, A, S, M, T, D = {};;) { if (x = n[n.length - 1], this.defaultActions[x] ? k = this.defaultActions[x] : (null == _ && (_ = m()), k = o[x] && o[x][_]), void 0 === k || !k.length || !k[0]) { var C = ""; for (A in T = [], o[x]) this.terminals_[A] && A > l && T.push("'" + this.terminals_[A] + "'"); C = p.showPosition ? "Parse error on line " + (u + 1) + ":\n" + p.showPosition() + "\nExpecting " + T.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : "Parse error on line " + (u + 1) + ": Unexpected " + (_ == h ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(C, { text: p.match, token: this.terminals_[_] || _, line: p.yylineno, loc: b, expected: T }) } if (k[0] instanceof Array && k.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + x + ", token: " + _); switch (k[0]) { case 1: n.push(_), i.push(p.yytext), a.push(p.yylloc), n.push(k[1]), _ = null, w ? (_ = w, w = null) : (c = p.yyleng, s = p.yytext, u = p.yylineno, b = p.yylloc, f > 0 && f--); break; case 2: if (S = this.productions_[k[1]][1], D.$ = i[i.length - S], D._$ = { first_line: a[a.length - (S || 1)].first_line, last_line: a[a.length - 1].last_line, first_column: a[a.length - (S || 1)].first_column, last_column: a[a.length - 1].last_column }, v && (D._$.range = [a[a.length - (S || 1)].range[0], a[a.length - 1].range[1]]), void 0 !== (E = this.performAction.apply(D, [s, c, u, g.yy, k[1], i, a].concat(d)))) return E; S && (n = n.slice(0, -1 * S * 2), i = i.slice(0, -1 * S), a = a.slice(0, -1 * S)), n.push(this.productions_[k[1]][0]), i.push(D.$), a.push(D._$), M = o[n[n.length - 2]][n[n.length - 1]], n.push(M); break; case 3: return !0 } } return !0 } }, r = { EOF: 1, parseError: function(t, e) { if (!this.yy.parser) throw new Error(t); this.yy.parser.parseError(t, e) }, setInput: function(t, e) { return this.yy = e || this.yy || {}, this._input = t, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this }, input: function() { var t = this._input[0]; return this.yytext += t, this.yyleng++, this.offset++, this.match += t, this.matched += t, t.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), t }, unput: function(t) { var e = t.length, n = t.split(/(?:\r\n?|\n)/g); this._input = t + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - e), this.offset -= e; var r = this.match.split(/(?:\r\n?|\n)/g); this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); var i = this.yylloc.range; return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: n ? (n.length === r.length ? this.yylloc.first_column : 0) + r[r.length - n.length].length - n[0].length : this.yylloc.first_column - e }, this.options.ranges && (this.yylloc.range = [i[0], i[0] + this.yyleng - e]), this.yyleng = this.yytext.length, this }, more: function() { return this._more = !0, this }, reject: function() { return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, less: function(t) { this.unput(this.match.slice(t)) }, pastInput: function() { var t = this.matched.substr(0, this.matched.length - this.match.length); return (t.length > 20 ? "..." : "") + t.substr(-20).replace(/\n/g, "") }, upcomingInput: function() { var t = this.match; return t.length < 20 && (t += this._input.substr(0, 20 - t.length)), (t.substr(0, 20) + (t.length > 20 ? "..." : "")).replace(/\n/g, "") }, showPosition: function() { var t = this.pastInput(), e = new Array(t.length + 1).join("-"); return t + this.upcomingInput() + "\n" + e + "^" }, test_match: function(t, e) { var n, r, i; if (this.options.backtrack_lexer && (i = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (i.yylloc.range = this.yylloc.range.slice(0))), (r = t[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += r.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: r ? r[r.length - 1].length - r[r.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length }, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], n = this.performAction.call(this, this.yy, this, e, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), n) return n; if (this._backtrack) { for (var a in i) this[a] = i[a]; return !1 } return !1 }, next: function() { if (this.done) return this.EOF; var t, e, n, r; this._input || (this.done = !0), this._more || (this.yytext = "", this.match = ""); for (var i = this._currentRules(), a = 0; a < i.length; a++) if ((n = this._input.match(this.rules[i[a]])) && (!e || n[0].length > e[0].length)) { if (e = n, r = a, this.options.backtrack_lexer) { if (!1 !== (t = this.test_match(n, i[a]))) return t; if (this._backtrack) { e = !1; continue } return !1 } if (!this.options.flex) break } return e ? !1 !== (t = this.test_match(e, i[r])) && t : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }) }, lex: function() { var t = this.next(); return t || this.lex() }, begin: function(t) { this.conditionStack.push(t) }, popState: function() { return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0] }, _currentRules: function() { return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules }, topState: function(t) { return (t = this.conditionStack.length - 1 - Math.abs(t || 0)) >= 0 ? this.conditionStack[t] : "INITIAL" }, pushState: function(t) { this.begin(t) }, stateStackSize: function() { return this.conditionStack.length }, options: { "case-insensitive": !0 }, performAction: function(t, e, n, r) { switch (n) { case 0: case 1: break; case 2: return 4; case 3: return 9; case 4: return "space"; case 5: return 12; case 6: this.begin("string"); break; case 7: this.popState(); break; case 8: return "STR"; case 9: return "VALUE"; case 10: return 6 } }, rules: [/^(?:%%[^\n]*)/i, /^(?:\s+)/i, /^(?:pie\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:title\s[^#\n;]+)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i], conditions: { string: { rules: [7, 8], inclusive: !1 }, INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 9, 10], inclusive: !0 } } }; function i() { this.yy = {} } return n.lexer = r, i.prototype = n, n.Parser = i, new i }(); e.parser = i, e.Parser = i.Parser, e.parse = function() { return i.parse.apply(i, arguments) }, e.main = function(r) { r[1] || (console.log("Usage: " + r[0] + " FILE"), t.exit(1)); var i = n(28).readFileSync(n(29).normalize(r[1]), "utf8"); return e.parser.parse(i) }, n.c[n.s] === r && e.main(t.argv.slice(1)) }).call(this, n(7), n(9)(t)) }, function(t) { t.exports = JSON.parse('{"name":"mermaid","version":"8.4.6","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build":"webpack --progress --colors","postbuild":"documentation build src/mermaidAPI.js --shallow -f md --markdown-toc false -o docs/mermaidAPI.md","build:watch":"yarn build --watch","minify":"minify ./dist/mermaid.js > ./dist/mermaid.min.js","release":"yarn build -p --config webpack.config.prod.babel.js","lint":"eslint src","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"percy exec -- cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack-dev-server --config webpack.config.e2e.js","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn release && yarn test && yarn e2e","prepush":"yarn test"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","crypto-random-string":"^3.0.1","d3":"^5.7.0","dagre":"^0.8.4","dagre-d3":"^0.6.4","graphlib":"^2.1.7","he":"^1.2.0","lodash":"^4.17.11","minify":"^4.1.1","moment-mini":"^2.22.1","scope-css":"^1.2.1"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","@percy/cypress":"^2.0.1","babel-core":"7.0.0-bridge.0","babel-jest":"^24.9.0","babel-loader":"^8.0.4","coveralls":"^3.0.2","css-loader":"^2.0.1","css-to-string-loader":"^0.1.3","cypress":"3.4.0","documentation":"^12.0.1","eslint":"^6.3.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.0","husky":"^1.2.1","identity-obj-proxy":"^3.0.0","jest":"^24.9.0","jison":"^0.4.18","moment":"^2.23.0","node-sass":"^4.12.0","prettier":"^1.18.2","puppeteer":"^1.17.0","sass-loader":"^7.1.0","start-server-and-test":"^1.10.6","terser-webpack-plugin":"^2.2.2","webpack":"^4.41.2","webpack-cli":"^3.1.2","webpack-dev-server":"^3.4.1","webpack-node-externals":"^1.7.2","yarn-upgrade-all":"^0.5.0"},"files":["dist"],"yarn-upgrade-all":{"ignore":["babel-core"]}}') }, function(t, e, n) { "use strict"; var r = n(13); t.exports = s; var i = "\0", a = "\0", o = ""; function s(t) { this._isDirected = !r.has(t, "directed") || t.directed, this._isMultigraph = !!r.has(t, "multigraph") && t.multigraph, this._isCompound = !!r.has(t, "compound") && t.compound, this._label = void 0, this._defaultNodeLabelFn = r.constant(void 0), this._defaultEdgeLabelFn = r.constant(void 0), this._nodes = {}, this._isCompound && (this._parent = {}, this._children = {}, this._children[a] = {}), this._in = {}, this._preds = {}, this._out = {}, this._sucs = {}, this._edgeObjs = {}, this._edgeLabels = {} } function u(t, e) { t[e] ? t[e]++ : t[e] = 1 } function c(t, e) { --t[e] || delete t[e] } function f(t, e, n, a) { var s = "" + e, u = "" + n; if (!t && s > u) { var c = s; s = u, u = c } return s + o + u + o + (r.isUndefined(a) ? i : a) } function l(t, e, n, r) { var i = "" + e, a = "" + n; if (!t && i > a) { var o = i; i = a, a = o } var s = { v: i, w: a }; return r && (s.name = r), s } function h(t, e) { return f(t, e.v, e.w, e.name) } s.prototype._nodeCount = 0, s.prototype._edgeCount = 0, s.prototype.isDirected = function() { return this._isDirected }, s.prototype.isMultigraph = function() { return this._isMultigraph }, s.prototype.isCompound = function() { return this._isCompound }, s.prototype.setGraph = function(t) { return this._label = t, this }, s.prototype.graph = function() { return this._label }, s.prototype.setDefaultNodeLabel = function(t) { return r.isFunction(t) || (t = r.constant(t)), this._defaultNodeLabelFn = t, this }, s.prototype.nodeCount = function() { return this._nodeCount }, s.prototype.nodes = function() { return r.keys(this._nodes) }, s.prototype.sources = function() { var t = this; return r.filter(this.nodes(), (function(e) { return r.isEmpty(t._in[e]) })) }, s.prototype.sinks = function() { var t = this; return r.filter(this.nodes(), (function(e) { return r.isEmpty(t._out[e]) })) }, s.prototype.setNodes = function(t, e) { var n = arguments, i = this; return r.each(t, (function(t) { n.length > 1 ? i.setNode(t, e) : i.setNode(t) })), this }, s.prototype.setNode = function(t, e) { return r.has(this._nodes, t) ? (arguments.length > 1 && (this._nodes[t] = e), this) : (this._nodes[t] = arguments.length > 1 ? e : this._defaultNodeLabelFn(t), this._isCompound && (this._parent[t] = a, this._children[t] = {}, this._children[a][t] = !0), this._in[t] = {}, this._preds[t] = {}, this._out[t] = {}, this._sucs[t] = {}, ++this._nodeCount, this) }, s.prototype.node = function(t) { return this._nodes[t] }, s.prototype.hasNode = function(t) { return r.has(this._nodes, t) }, s.prototype.removeNode = function(t) { var e = this; if (r.has(this._nodes, t)) { var n = function(t) { e.removeEdge(e._edgeObjs[t]) }; delete this._nodes[t], this._isCompound && (this._removeFromParentsChildList(t), delete this._parent[t], r.each(this.children(t), (function(t) { e.setParent(t) })), delete this._children[t]), r.each(r.keys(this._in[t]), n), delete this._in[t], delete this._preds[t], r.each(r.keys(this._out[t]), n), delete this._out[t], delete this._sucs[t], --this._nodeCount } return this }, s.prototype.setParent = function(t, e) { if (!this._isCompound) throw new Error("Cannot set parent in a non-compound graph"); if (r.isUndefined(e)) e = a; else { for (var n = e += ""; !r.isUndefined(n); n = this.parent(n)) if (n === t) throw new Error("Setting " + e + " as parent of " + t + " would create a cycle"); this.setNode(e) } return this.setNode(t), this._removeFromParentsChildList(t), this._parent[t] = e, this._children[e][t] = !0, this }, s.prototype._removeFromParentsChildList = function(t) { delete this._children[this._parent[t]][t] }, s.prototype.parent = function(t) { if (this._isCompound) { var e = this._parent[t]; if (e !== a) return e } }, s.prototype.children = function(t) { if (r.isUndefined(t) && (t = a), this._isCompound) { var e = this._children[t]; if (e) return r.keys(e) } else { if (t === a) return this.nodes(); if (this.hasNode(t)) return [] } }, s.prototype.predecessors = function(t) { var e = this._preds[t]; if (e) return r.keys(e) }, s.prototype.successors = function(t) { var e = this._sucs[t]; if (e) return r.keys(e) }, s.prototype.neighbors = function(t) { var e = this.predecessors(t); if (e) return r.union(e, this.successors(t)) }, s.prototype.isLeaf = function(t) { return 0 === (this.isDirected() ? this.successors(t) : this.neighbors(t)).length }, s.prototype.filterNodes = function(t) { var e = new this.constructor({ directed: this._isDirected, multigraph: this._isMultigraph, compound: this._isCompound }); e.setGraph(this.graph()); var n = this; r.each(this._nodes, (function(n, r) { t(r) && e.setNode(r, n) })), r.each(this._edgeObjs, (function(t) { e.hasNode(t.v) && e.hasNode(t.w) && e.setEdge(t, n.edge(t)) })); var i = {}; return this._isCompound && r.each(e.nodes(), (function(t) { e.setParent(t, function t(r) { var a = n.parent(r); return void 0 === a || e.hasNode(a) ? (i[r] = a, a) : a in i ? i[a] : t(a) }(t)) })), e }, s.prototype.setDefaultEdgeLabel = function(t) { return r.isFunction(t) || (t = r.constant(t)), this._defaultEdgeLabelFn = t, this }, s.prototype.edgeCount = function() { return this._edgeCount }, s.prototype.edges = function() { return r.values(this._edgeObjs) }, s.prototype.setPath = function(t, e) { var n = this, i = arguments; return r.reduce(t, (function(t, r) { return i.length > 1 ? n.setEdge(t, r, e) : n.setEdge(t, r), r })), this }, s.prototype.setEdge = function() { var t, e, n, i, a = !1, o = arguments[0]; "object" == typeof o && null !== o && "v" in o ? (t = o.v, e = o.w, n = o.name, 2 === arguments.length && (i = arguments[1], a = !0)) : (t = o, e = arguments[1], n = arguments[3], arguments.length > 2 && (i = arguments[2], a = !0)), t = "" + t, e = "" + e, r.isUndefined(n) || (n = "" + n); var s = f(this._isDirected, t, e, n); if (r.has(this._edgeLabels, s)) return a && (this._edgeLabels[s] = i), this; if (!r.isUndefined(n) && !this._isMultigraph) throw new Error("Cannot set a named edge when isMultigraph = false"); this.setNode(t), this.setNode(e), this._edgeLabels[s] = a ? i : this._defaultEdgeLabelFn(t, e, n); var c = l(this._isDirected, t, e, n); return t = c.v, e = c.w, Object.freeze(c), this._edgeObjs[s] = c, u(this._preds[e], t), u(this._sucs[t], e), this._in[e][s] = c, this._out[t][s] = c, this._edgeCount++, this }, s.prototype.edge = function(t, e, n) { var r = 1 === arguments.length ? h(this._isDirected, arguments[0]) : f(this._isDirected, t, e, n); return this._edgeLabels[r] }, s.prototype.hasEdge = function(t, e, n) { var i = 1 === arguments.length ? h(this._isDirected, arguments[0]) : f(this._isDirected, t, e, n); return r.has(this._edgeLabels, i) }, s.prototype.removeEdge = function(t, e, n) { var r = 1 === arguments.length ? h(this._isDirected, arguments[0]) : f(this._isDirected, t, e, n), i = this._edgeObjs[r]; return i && (t = i.v, e = i.w, delete this._edgeLabels[r], delete this._edgeObjs[r], c(this._preds[e], t), c(this._sucs[t], e), delete this._in[e][r], delete this._out[t][r], this._edgeCount--), this }, s.prototype.inEdges = function(t, e) { var n = this._in[t]; if (n) { var i = r.values(n); return e ? r.filter(i, (function(t) { return t.v === e })) : i } }, s.prototype.outEdges = function(t, e) { var n = this._out[t]; if (n) { var i = r.values(n); return e ? r.filter(i, (function(t) { return t.w === e })) : i } }, s.prototype.nodeEdges = function(t, e) { var n = this.inEdges(t, e); if (n) return n.concat(this.outEdges(t, e)) } }, function(t, e, n) { var r = n(32)(n(18), "Map"); t.exports = r }, function(t, e, n) { var r = n(254), i = n(261), a = n(263), o = n(264), s = n(265); function u(t) { var e = -1, n = null == t ? 0 : t.length; for (this.clear(); ++e < n;) { var r = t[e]; this.set(r[0], r[1]) } } u.prototype.clear = r, u.prototype.delete = i, u.prototype.get = a, u.prototype.has = o, u.prototype.set = s, t.exports = u }, function(t, e) { t.exports = function(t, e) { for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t);); return t } }, function(t, e) { var n = 9007199254740991; t.exports = function(t) { return "number" == typeof t && t > -1 && t % 1 == 0 && t <= n } }, function(t, e, n) { (function(t) { var r = n(131), i = e && !e.nodeType && e, a = i && "object" == typeof t && t && !t.nodeType && t, o = a && a.exports === i && r.process, s = function() { try { var t = a && a.require && a.require("util").types; return t || o && o.binding && o.binding("util") } catch (t) {} }(); t.exports = s }).call(this, n(9)(t)) }, function(t, e, n) { var r = n(70), i = n(271), a = Object.prototype.hasOwnProperty; t.exports = function(t) { if (!r(t)) return i(t); var e = []; for (var n in Object(t)) a.call(t, n) && "constructor" != n && e.push(n); return e } }, function(t, e, n) { var r = n(138), i = n(139), a = Object.prototype.propertyIsEnumerable, o = Object.getOwnPropertySymbols, s = o ? function(t) { return null == t ? [] : (t = Object(t), r(o(t), (function(e) { return a.call(t, e) }))) } : i; t.exports = s }, function(t, e) { t.exports = function(t, e) { for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n]; return t } }, function(t, e, n) { var r = n(144); t.exports = function(t) { var e = new t.constructor(t.byteLength); return new r(e).set(new r(t)), e } }, function(t, e) { t.exports = function(t) { return function() { return t } } }, function(t, e, n) { t.exports = n(148) }, function(t, e, n) { var r = n(102), i = n(27); t.exports = function(t, e) { return t && r(t, e, i) } }, function(t, e, n) { var r = n(290)(); t.exports = r }, function(t, e) { t.exports = function(t) { var e = -1, n = Array(t.size); return t.forEach((function(t) { n[++e] = t })), n } }, function(t, e, n) { var r = n(73), i = n(52); t.exports = function(t, e) { for (var n = 0, a = (e = r(e, t)).length; null != t && n < a;) t = t[i(e[n++])]; return n && n == a ? t : void 0 } }, function(t, e, n) { var r = n(6), i = n(42), a = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, o = /^\w*$/; t.exports = function(t, e) { if (r(t)) return !1; var n = typeof t; return !("number" != n && "symbol" != n && "boolean" != n && null != t && !i(t)) || (o.test(t) || !a.test(t) || null != e && t in Object(e)) } }, function(t, e, n) { var r = n(312), i = n(159); t.exports = function(t, e) { return null != t && i(t, e, r) } }, function(t, e, n) { var r = n(97), i = n(324); t.exports = function t(e, n, a, o, s) { var u = -1, c = e.length; for (a || (a = i), s || (s = []); ++u < c;) { var f = e[u]; n > 0 && a(f) ? n > 1 ? t(f, n - 1, a, o, s) : r(s, f) : o || (s[s.length] = f) } return s } }, function(t, e, n) { var r = n(42); t.exports = function(t, e, n) { for (var i = -1, a = t.length; ++i < a;) { var o = t[i], s = e(o); if (null != s && (void 0 === u ? s == s && !r(s) : n(s, u))) var u = s, c = o } return c } }, function(t, e) { t.exports = function(t, e, n, r) { var i = t.x, a = t.y, o = i - r.x, s = a - r.y, u = Math.sqrt(e * e * s * s + n * n * o * o), c = Math.abs(e * n * o / u); r.x < i && (c = -c); var f = Math.abs(e * n * s / u); r.y < a && (f = -f); return { x: i + c, y: a + f } } }, function(t, e, n) { var r = n(409), i = n(128), a = n(410); t.exports = function(t, e, n) { var o = e.label, s = t.append("g"); "svg" === e.labelType ? a(s, e) : "string" != typeof o || "html" === e.labelType ? i(s, e) : r(s, e); var u, c = s.node().getBBox(); switch (n) { case "top": u = -e.height / 2; break; case "bottom": u = e.height / 2 - c.height; break; default: u = -c.height / 2 } return s.attr("transform", "translate(" + -c.width / 2 + "," + u + ")"), s } }, function(t, e, n) { "use strict"; var r = n(2), i = n(192), a = n(3).Buffer, o = new Array(16); function s() { i.call(this, 64), this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878 } function u(t, e) { return t << e | t >>> 32 - e } function c(t, e, n, r, i, a, o) { return u(t + (e & n | ~e & r) + i + a | 0, o) + e | 0 } function f(t, e, n, r, i, a, o) { return u(t + (e & r | n & ~r) + i + a | 0, o) + e | 0 } function l(t, e, n, r, i, a, o) { return u(t + (e ^ n ^ r) + i + a | 0, o) + e | 0 } function h(t, e, n, r, i, a, o) { return u(t + (n ^ (e | ~r)) + i + a | 0, o) + e | 0 } r(s, i), s.prototype._update = function() { for (var t = o, e = 0; e < 16; ++e) t[e] = this._block.readInt32LE(4 * e); var n = this._a, r = this._b, i = this._c, a = this._d; n = c(n, r, i, a, t[0], 3614090360, 7), a = c(a, n, r, i, t[1], 3905402710, 12), i = c(i, a, n, r, t[2], 606105819, 17), r = c(r, i, a, n, t[3], 3250441966, 22), n = c(n, r, i, a, t[4], 4118548399, 7), a = c(a, n, r, i, t[5], 1200080426, 12), i = c(i, a, n, r, t[6], 2821735955, 17), r = c(r, i, a, n, t[7], 4249261313, 22), n = c(n, r, i, a, t[8], 1770035416, 7), a = c(a, n, r, i, t[9], 2336552879, 12), i = c(i, a, n, r, t[10], 4294925233, 17), r = c(r, i, a, n, t[11], 2304563134, 22), n = c(n, r, i, a, t[12], 1804603682, 7), a = c(a, n, r, i, t[13], 4254626195, 12), i = c(i, a, n, r, t[14], 2792965006, 17), n = f(n, r = c(r, i, a, n, t[15], 1236535329, 22), i, a, t[1], 4129170786, 5), a = f(a, n, r, i, t[6], 3225465664, 9), i = f(i, a, n, r, t[11], 643717713, 14), r = f(r, i, a, n, t[0], 3921069994, 20), n = f(n, r, i, a, t[5], 3593408605, 5), a = f(a, n, r, i, t[10], 38016083, 9), i = f(i, a, n, r, t[15], 3634488961, 14), r = f(r, i, a, n, t[4], 3889429448, 20), n = f(n, r, i, a, t[9], 568446438, 5), a = f(a, n, r, i, t[14], 3275163606, 9), i = f(i, a, n, r, t[3], 4107603335, 14), r = f(r, i, a, n, t[8], 1163531501, 20), n = f(n, r, i, a, t[13], 2850285829, 5), a = f(a, n, r, i, t[2], 4243563512, 9), i = f(i, a, n, r, t[7], 1735328473, 14), n = l(n, r = f(r, i, a, n, t[12], 2368359562, 20), i, a, t[5], 4294588738, 4), a = l(a, n, r, i, t[8], 2272392833, 11), i = l(i, a, n, r, t[11], 1839030562, 16), r = l(r, i, a, n, t[14], 4259657740, 23), n = l(n, r, i, a, t[1], 2763975236, 4), a = l(a, n, r, i, t[4], 1272893353, 11), i = l(i, a, n, r, t[7], 4139469664, 16), r = l(r, i, a, n, t[10], 3200236656, 23), n = l(n, r, i, a, t[13], 681279174, 4), a = l(a, n, r, i, t[0], 3936430074, 11), i = l(i, a, n, r, t[3], 3572445317, 16), r = l(r, i, a, n, t[6], 76029189, 23), n = l(n, r, i, a, t[9], 3654602809, 4), a = l(a, n, r, i, t[12], 3873151461, 11), i = l(i, a, n, r, t[15], 530742520, 16), n = h(n, r = l(r, i, a, n, t[2], 3299628645, 23), i, a, t[0], 4096336452, 6), a = h(a, n, r, i, t[7], 1126891415, 10), i = h(i, a, n, r, t[14], 2878612391, 15), r = h(r, i, a, n, t[5], 4237533241, 21), n = h(n, r, i, a, t[12], 1700485571, 6), a = h(a, n, r, i, t[3], 2399980690, 10), i = h(i, a, n, r, t[10], 4293915773, 15), r = h(r, i, a, n, t[1], 2240044497, 21), n = h(n, r, i, a, t[8], 1873313359, 6), a = h(a, n, r, i, t[15], 4264355552, 10), i = h(i, a, n, r, t[6], 2734768916, 15), r = h(r, i, a, n, t[13], 1309151649, 21), n = h(n, r, i, a, t[4], 4149444226, 6), a = h(a, n, r, i, t[11], 3174756917, 10), i = h(i, a, n, r, t[2], 718787259, 15), r = h(r, i, a, n, t[9], 3951481745, 21), this._a = this._a + n | 0, this._b = this._b + r | 0, this._c = this._c + i | 0, this._d = this._d + a | 0 }, s.prototype._digest = function() { this._block[this._blockOffset++] = 128, this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), this._blockOffset = 0), this._block.fill(0, this._blockOffset, 56), this._block.writeUInt32LE(this._length[0], 56), this._block.writeUInt32LE(this._length[1], 60), this._update(); var t = a.allocUnsafe(16); return t.writeInt32LE(this._a, 0), t.writeInt32LE(this._b, 4), t.writeInt32LE(this._c, 8), t.writeInt32LE(this._d, 12), t }, t.exports = s }, function(t, e, n) { t.exports = i; var r = n(113).EventEmitter; function i() { r.call(this) } n(2)(i, r), i.Readable = n(114), i.Writable = n(430), i.Duplex = n(431), i.Transform = n(432), i.PassThrough = n(433), i.Stream = i, i.prototype.pipe = function(t, e) { var n = this; function i(e) { t.writable && !1 === t.write(e) && n.pause && n.pause() } function a() { n.readable && n.resume && n.resume() } n.on("data", i), t.on("drain", a), t._isStdio || e && !1 === e.end || (n.on("end", s), n.on("close", u)); var o = !1; function s() { o || (o = !0, t.end()) } function u() { o || (o = !0, "function" == typeof t.destroy && t.destroy()) } function c(t) { if (f(), 0 === r.listenerCount(this, "error")) throw t } function f() { n.removeListener("data", i), t.removeListener("drain", a), n.removeListener("end", s), n.removeListener("close", u), n.removeListener("error", c), t.removeListener("error", c), n.removeListener("end", f), n.removeListener("close", f), t.removeListener("close", f) } return n.on("error", c), t.on("error", c), n.on("end", f), n.on("close", f), t.on("close", f), t.emit("pipe", n), t } }, function(t, e, n) { "use strict"; var r, i = "object" == typeof Reflect ? Reflect : null, a = i && "function" == typeof i.apply ? i.apply : function(t, e, n) { return Function.prototype.apply.call(t, e, n) }; r = i && "function" == typeof i.ownKeys ? i.ownKeys : Object.getOwnPropertySymbols ? function(t) { return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)) } : function(t) { return Object.getOwnPropertyNames(t) }; var o = Number.isNaN || function(t) { return t != t }; function s() { s.init.call(this) } t.exports = s, s.EventEmitter = s, s.prototype._events = void 0, s.prototype._eventsCount = 0, s.prototype._maxListeners = void 0; var u = 10; function c(t) { return void 0 === t._maxListeners ? s.defaultMaxListeners : t._maxListeners } function f(t, e, n, r) { var i, a, o, s; if ("function" != typeof n) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof n); if (void 0 === (a = t._events) ? (a = t._events = Object.create(null), t._eventsCount = 0) : (void 0 !== a.newListener && (t.emit("newListener", e, n.listener ? n.listener : n), a = t._events), o = a[e]), void 0 === o) o = a[e] = n, ++t._eventsCount; else if ("function" == typeof o ? o = a[e] = r ? [n, o] : [o, n] : r ? o.unshift(n) : o.push(n), (i = c(t)) > 0 && o.length > i && !o.warned) { o.warned = !0; var u = new Error("Possible EventEmitter memory leak detected. " + o.length + " " + String(e) + " listeners added. Use emitter.setMaxListeners() to increase limit"); u.name = "MaxListenersExceededWarning", u.emitter = t, u.type = e, u.count = o.length, s = u, console && console.warn && console.warn(s) } return t } function l() { for (var t = [], e = 0; e < arguments.length; e++) t.push(arguments[e]); this.fired || (this.target.removeListener(this.type, this.wrapFn), this.fired = !0, a(this.listener, this.target, t)) } function h(t, e, n) { var r = { fired: !1, wrapFn: void 0, target: t, type: e, listener: n }, i = l.bind(r); return i.listener = n, r.wrapFn = i, i } function d(t, e, n) { var r = t._events; if (void 0 === r) return []; var i = r[e]; return void 0 === i ? [] : "function" == typeof i ? n ? [i.listener || i] : [i] : n ? function(t) { for (var e = new Array(t.length), n = 0; n < e.length; ++n) e[n] = t[n].listener || t[n]; return e }(i) : g(i, i.length) } function p(t) { var e = this._events; if (void 0 !== e) { var n = e[t]; if ("function" == typeof n) return 1; if (void 0 !== n) return n.length } return 0 } function g(t, e) { for (var n = new Array(e), r = 0; r < e; ++r) n[r] = t[r]; return n } Object.defineProperty(s, "defaultMaxListeners", { enumerable: !0, get: function() { return u }, set: function(t) { if ("number" != typeof t || t < 0 || o(t)) throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + t + "."); u = t } }), s.init = function() { void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0 }, s.prototype.setMaxListeners = function(t) { if ("number" != typeof t || t < 0 || o(t)) throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + t + "."); return this._maxListeners = t, this }, s.prototype.getMaxListeners = function() { return c(this) }, s.prototype.emit = function(t) { for (var e = [], n = 1; n < arguments.length; n++) e.push(arguments[n]); var r = "error" === t, i = this._events; if (void 0 !== i) r = r && void 0 === i.error; else if (!r) return !1; if (r) { var o; if (e.length > 0 && (o = e[0]), o instanceof Error) throw o; var s = new Error("Unhandled error." + (o ? " (" + o.message + ")" : "")); throw s.context = o, s } var u = i[t]; if (void 0 === u) return !1; if ("function" == typeof u) a(u, this, e); else { var c = u.length, f = g(u, c); for (n = 0; n < c; ++n) a(f[n], this, e) } return !0 }, s.prototype.addListener = function(t, e) { return f(this, t, e, !1) }, s.prototype.on = s.prototype.addListener, s.prototype.prependListener = function(t, e) { return f(this, t, e, !0) }, s.prototype.once = function(t, e) { if ("function" != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e); return this.on(t, h(this, t, e)), this }, s.prototype.prependOnceListener = function(t, e) { if ("function" != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e); return this.prependListener(t, h(this, t, e)), this }, s.prototype.removeListener = function(t, e) { var n, r, i, a, o; if ("function" != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e); if (void 0 === (r = this._events)) return this; if (void 0 === (n = r[t])) return this; if (n === e || n.listener === e) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete r[t], r.removeListener && this.emit("removeListener", t, n.listener || e)); else if ("function" != typeof n) { for (i = -1, a = n.length - 1; a >= 0; a--) if (n[a] === e || n[a].listener === e) { o = n[a].listener, i = a; break } if (i < 0) return this; 0 === i ? n.shift() : function(t, e) { for (; e + 1 < t.length; e++) t[e] = t[e + 1]; t.pop() }(n, i), 1 === n.length && (r[t] = n[0]), void 0 !== r.removeListener && this.emit("removeListener", t, o || e) } return this }, s.prototype.off = s.prototype.removeListener, s.prototype.removeAllListeners = function(t) { var e, n, r; if (void 0 === (n = this._events)) return this; if (void 0 === n.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== n[t] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete n[t]), this; if (0 === arguments.length) { var i, a = Object.keys(n); for (r = 0; r < a.length; ++r) "removeListener" !== (i = a[r]) && this.removeAllListeners(i); return this.removeAllListeners("removeListener"), this._events = Object.create(null), this._eventsCount = 0, this } if ("function" == typeof(e = n[t])) this.removeListener(t, e); else if (void 0 !== e) for (r = e.length - 1; r >= 0; r--) this.removeListener(t, e[r]); return this }, s.prototype.listeners = function(t) { return d(this, t, !0) }, s.prototype.rawListeners = function(t) { return d(this, t, !1) }, s.listenerCount = function(t, e) { return "function" == typeof t.listenerCount ? t.listenerCount(e) : p.call(t, e) }, s.prototype.listenerCount = p, s.prototype.eventNames = function() { return this._eventsCount > 0 ? r(this._events) : [] } }, function(t, e, n) { (e = t.exports = n(193)).Stream = e, e.Readable = e, e.Writable = n(116), e.Duplex = n(35), e.Transform = n(196), e.PassThrough = n(429) }, function(t, e, n) { var r = n(8), i = r.Buffer; function a(t, e) { for (var n in t) e[n] = t[n] } function o(t, e, n) { return i(t, e, n) } i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? t.exports = r : (a(r, e), e.Buffer = o), a(i, o), o.from = function(t, e, n) { if ("number" == typeof t) throw new TypeError("Argument must not be a number"); return i(t, e, n) }, o.alloc = function(t, e, n) { if ("number" != typeof t) throw new TypeError("Argument must be a number"); var r = i(t); return void 0 !== e ? "string" == typeof n ? r.fill(e, n) : r.fill(e) : r.fill(0), r }, o.allocUnsafe = function(t) { if ("number" != typeof t) throw new TypeError("Argument must be a number"); return i(t) }, o.allocUnsafeSlow = function(t) { if ("number" != typeof t) throw new TypeError("Argument must be a number"); return r.SlowBuffer(t) } }, function(t, e, n) { "use strict"; (function(e, r, i) { var a = n(78); function o(t) { var e = this; this.next = null, this.entry = null, this.finish = function() { ! function(t, e, n) { var r = t.entry; t.entry = null; for (; r;) { var i = r.callback; e.pendingcb--, i(n), r = r.next } e.corkedRequestsFree ? e.corkedRequestsFree.next = t : e.corkedRequestsFree = t }(e, t) } } t.exports = v; var s, u = !e.browser && ["v0.10", "v0.9."].indexOf(e.version.slice(0, 5)) > -1 ? r : a.nextTick; v.WritableState = b; var c = n(54); c.inherits = n(2); var f = { deprecate: n(428) }, l = n(194), h = n(115).Buffer, d = i.Uint8Array || function() {}; var p, g = n(195); function y() {} function b(t, e) { s = s || n(35), t = t || {}; var r = e instanceof s; this.objectMode = !!t.objectMode, r && (this.objectMode = this.objectMode || !!t.writableObjectMode); var i = t.highWaterMark, c = t.writableHighWaterMark, f = this.objectMode ? 16 : 16384; this.highWaterMark = i || 0 === i ? i : r && (c || 0 === c) ? c : f, this.highWaterMark = Math.floor(this.highWaterMark), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, this.destroyed = !1; var l = !1 === t.decodeStrings; this.decodeStrings = !l, this.defaultEncoding = t.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function(t) { ! function(t, e) { var n = t._writableState, r = n.sync, i = n.writecb; if (function(t) { t.writing = !1, t.writecb = null, t.length -= t.writelen, t.writelen = 0 }(n), e) ! function(t, e, n, r, i) { --e.pendingcb, n ? (a.nextTick(i, r), a.nextTick(E, t, e), t._writableState.errorEmitted = !0, t.emit("error", r)) : (i(r), t._writableState.errorEmitted = !0, t.emit("error", r), E(t, e)) }(t, n, r, e, i); else { var o = x(n); o || n.corked || n.bufferProcessing || !n.bufferedRequest || w(t, n), r ? u(_, t, n, o, i) : _(t, n, o, i) } }(e, t) }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.bufferedRequestCount = 0, this.corkedRequestsFree = new o(this) } function v(t) { if (s = s || n(35), !(p.call(v, this) || this instanceof s)) return new v(t); this._writableState = new b(t, this), this.writable = !0, t && ("function" == typeof t.write && (this._write = t.write), "function" == typeof t.writev && (this._writev = t.writev), "function" == typeof t.destroy && (this._destroy = t.destroy), "function" == typeof t.final && (this._final = t.final)), l.call(this) } function m(t, e, n, r, i, a, o) { e.writelen = r, e.writecb = o, e.writing = !0, e.sync = !0, n ? t._writev(i, e.onwrite) : t._write(i, a, e.onwrite), e.sync = !1 } function _(t, e, n, r) { n || function(t, e) { 0 === e.length && e.needDrain && (e.needDrain = !1, t.emit("drain")) }(t, e), e.pendingcb--, r(), E(t, e) } function w(t, e) { e.bufferProcessing = !0; var n = e.bufferedRequest; if (t._writev && n && n.next) { var r = e.bufferedRequestCount, i = new Array(r), a = e.corkedRequestsFree; a.entry = n; for (var s = 0, u = !0; n;) i[s] = n, n.isBuf || (u = !1), n = n.next, s += 1; i.allBuffers = u, m(t, e, !0, e.length, i, "", a.finish), e.pendingcb++, e.lastBufferedRequest = null, a.next ? (e.corkedRequestsFree = a.next, a.next = null) : e.corkedRequestsFree = new o(e), e.bufferedRequestCount = 0 } else { for (; n;) { var c = n.chunk, f = n.encoding, l = n.callback; if (m(t, e, !1, e.objectMode ? 1 : c.length, c, f, l), n = n.next, e.bufferedRequestCount--, e.writing) break } null === n && (e.lastBufferedRequest = null) } e.bufferedRequest = n, e.bufferProcessing = !1 } function x(t) { return t.ending && 0 === t.length && null === t.bufferedRequest && !t.finished && !t.writing } function k(t, e) { t._final((function(n) { e.pendingcb--, n && t.emit("error", n), e.prefinished = !0, t.emit("prefinish"), E(t, e) })) } function E(t, e) { var n = x(e); return n && (! function(t, e) { e.prefinished || e.finalCalled || ("function" == typeof t._final ? (e.pendingcb++, e.finalCalled = !0, a.nextTick(k, t, e)) : (e.prefinished = !0, t.emit("prefinish"))) }(t, e), 0 === e.pendingcb && (e.finished = !0, t.emit("finish"))), n } c.inherits(v, l), b.prototype.getBuffer = function() { for (var t = this.bufferedRequest, e = []; t;) e.push(t), t = t.next; return e }, function() { try { Object.defineProperty(b.prototype, "buffer", { get: f.deprecate((function() { return this.getBuffer() }), "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") }) } catch (t) {} }(), "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (p = Function.prototype[Symbol.hasInstance], Object.defineProperty(v, Symbol.hasInstance, { value: function(t) { return !!p.call(this, t) || this === v && (t && t._writableState instanceof b) } })) : p = function(t) { return t instanceof this }, v.prototype.pipe = function() { this.emit("error", new Error("Cannot pipe, not readable")) }, v.prototype.write = function(t, e, n) { var r, i = this._writableState, o = !1, s = !i.objectMode && (r = t, h.isBuffer(r) || r instanceof d); return s && !h.isBuffer(t) && (t = function(t) { return h.from(t) }(t)), "function" == typeof e && (n = e, e = null), s ? e = "buffer" : e || (e = i.defaultEncoding), "function" != typeof n && (n = y), i.ended ? function(t, e) { var n = new Error("write after end"); t.emit("error", n), a.nextTick(e, n) }(this, n) : (s || function(t, e, n, r) { var i = !0, o = !1; return null === n ? o = new TypeError("May not write null values to stream") : "string" == typeof n || void 0 === n || e.objectMode || (o = new TypeError("Invalid non-string/buffer chunk")), o && (t.emit("error", o), a.nextTick(r, o), i = !1), i }(this, i, t, n)) && (i.pendingcb++, o = function(t, e, n, r, i, a) { if (!n) { var o = function(t, e, n) { t.objectMode || !1 === t.decodeStrings || "string" != typeof e || (e = h.from(e, n)); return e }(e, r, i); r !== o && (n = !0, i = "buffer", r = o) } var s = e.objectMode ? 1 : r.length; e.length += s; var u = e.length < e.highWaterMark; u || (e.needDrain = !0); if (e.writing || e.corked) { var c = e.lastBufferedRequest; e.lastBufferedRequest = { chunk: r, encoding: i, isBuf: n, callback: a, next: null }, c ? c.next = e.lastBufferedRequest : e.bufferedRequest = e.lastBufferedRequest, e.bufferedRequestCount += 1 } else m(t, e, !1, s, r, i, a); return u }(this, i, s, t, e, n)), o }, v.prototype.cork = function() { this._writableState.corked++ }, v.prototype.uncork = function() { var t = this._writableState; t.corked && (t.corked--, t.writing || t.corked || t.finished || t.bufferProcessing || !t.bufferedRequest || w(this, t)) }, v.prototype.setDefaultEncoding = function(t) { if ("string" == typeof t && (t = t.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((t + "").toLowerCase()) > -1)) throw new TypeError("Unknown encoding: " + t); return this._writableState.defaultEncoding = t, this }, Object.defineProperty(v.prototype, "writableHighWaterMark", { enumerable: !1, get: function() { return this._writableState.highWaterMark } }), v.prototype._write = function(t, e, n) { n(new Error("_write() is not implemented")) }, v.prototype._writev = null, v.prototype.end = function(t, e, n) { var r = this._writableState; "function" == typeof t ? (n = t, t = null, e = null) : "function" == typeof e && (n = e, e = null), null != t && this.write(t, e), r.corked && (r.corked = 1, this.uncork()), r.ending || r.finished || function(t, e, n) { e.ending = !0, E(t, e), n && (e.finished ? a.nextTick(n) : t.once("finish", n)); e.ended = !0, t.writable = !1 }(this, r, n) }, Object.defineProperty(v.prototype, "destroyed", { get: function() { return void 0 !== this._writableState && this._writableState.destroyed }, set: function(t) { this._writableState && (this._writableState.destroyed = t) } }), v.prototype.destroy = g.destroy, v.prototype._undestroy = g.undestroy, v.prototype._destroy = function(t, e) { this.end(), e(t) } }).call(this, n(7), n(426).setImmediate, n(12)) }, function(t, e, n) { "use strict"; var r = n(3).Buffer, i = r.isEncoding || function(t) { switch ((t = "" + t) && t.toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": case "raw": return !0; default: return !1 } }; function a(t) { var e; switch (this.encoding = function(t) { var e = function(t) { if (!t) return "utf8"; for (var e;;) switch (t) { case "utf8": case "utf-8": return "utf8"; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return "utf16le"; case "latin1": case "binary": return "latin1"; case "base64": case "ascii": case "hex": return t; default: if (e) return; t = ("" + t).toLowerCase(), e = !0 } }(t); if ("string" != typeof e && (r.isEncoding === i || !i(t))) throw new Error("Unknown encoding: " + t); return e || t }(t), this.encoding) { case "utf16le": this.text = u, this.end = c, e = 4; break; case "utf8": this.fillLast = s, e = 4; break; case "base64": this.text = f, this.end = l, e = 3; break; default: return this.write = h, void(this.end = d) } this.lastNeed = 0, this.lastTotal = 0, this.lastChar = r.allocUnsafe(e) } function o(t) { return t <= 127 ? 0 : t >> 5 == 6 ? 2 : t >> 4 == 14 ? 3 : t >> 3 == 30 ? 4 : t >> 6 == 2 ? -1 : -2 } function s(t) { var e = this.lastTotal - this.lastNeed, n = function(t, e, n) { if (128 != (192 & e[0])) return t.lastNeed = 0, "�"; if (t.lastNeed > 1 && e.length > 1) { if (128 != (192 & e[1])) return t.lastNeed = 1, "�"; if (t.lastNeed > 2 && e.length > 2 && 128 != (192 & e[2])) return t.lastNeed = 2, "�" } }(this, t); return void 0 !== n ? n : this.lastNeed <= t.length ? (t.copy(this.lastChar, e, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (t.copy(this.lastChar, e, 0, t.length), void(this.lastNeed -= t.length)) } function u(t, e) { if ((t.length - e) % 2 == 0) { var n = t.toString("utf16le", e); if (n) { var r = n.charCodeAt(n.length - 1); if (r >= 55296 && r <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = t[t.length - 2], this.lastChar[1] = t[t.length - 1], n.slice(0, -1) } return n } return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = t[t.length - 1], t.toString("utf16le", e, t.length - 1) } function c(t) { var e = t && t.length ? this.write(t) : ""; if (this.lastNeed) { var n = this.lastTotal - this.lastNeed; return e + this.lastChar.toString("utf16le", 0, n) } return e } function f(t, e) { var n = (t.length - e) % 3; return 0 === n ? t.toString("base64", e) : (this.lastNeed = 3 - n, this.lastTotal = 3, 1 === n ? this.lastChar[0] = t[t.length - 1] : (this.lastChar[0] = t[t.length - 2], this.lastChar[1] = t[t.length - 1]), t.toString("base64", e, t.length - n)) } function l(t) { var e = t && t.length ? this.write(t) : ""; return this.lastNeed ? e + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : e } function h(t) { return t.toString(this.encoding) } function d(t) { return t && t.length ? this.write(t) : "" } e.StringDecoder = a, a.prototype.write = function(t) { if (0 === t.length) return ""; var e, n; if (this.lastNeed) { if (void 0 === (e = this.fillLast(t))) return ""; n = this.lastNeed, this.lastNeed = 0 } else n = 0; return n < t.length ? e ? e + this.text(t, n) : this.text(t, n) : e || "" }, a.prototype.end = function(t) { var e = t && t.length ? this.write(t) : ""; return this.lastNeed ? e + "�" : e }, a.prototype.text = function(t, e) { var n = function(t, e, n) { var r = e.length - 1; if (r < n) return 0; var i = o(e[r]); if (i >= 0) return i > 0 && (t.lastNeed = i - 1), i; if (--r < n || -2 === i) return 0; if ((i = o(e[r])) >= 0) return i > 0 && (t.lastNeed = i - 2), i; if (--r < n || -2 === i) return 0; if ((i = o(e[r])) >= 0) return i > 0 && (2 === i ? i = 0 : t.lastNeed = i - 3), i; return 0 }(this, t, e); if (!this.lastNeed) return t.toString("utf8", e); this.lastTotal = n; var r = t.length - (n - this.lastNeed); return t.copy(this.lastChar, 0, r), t.toString("utf8", e, r) }, a.prototype.fillLast = function(t) { if (this.lastNeed <= t.length) return t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal); t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t.length), this.lastNeed -= t.length } }, function(t, e, n) { "use strict"; var r = n(8).Buffer, i = n(2), a = n(192), o = new Array(16), s = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13], u = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11], c = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6], f = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11], l = [0, 1518500249, 1859775393, 2400959708, 2840853838], h = [1352829926, 1548603684, 1836072691, 2053994217, 0]; function d() { a.call(this, 64), this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878, this._e = 3285377520 } function p(t, e) { return t << e | t >>> 32 - e } function g(t, e, n, r, i, a, o, s) { return p(t + (e ^ n ^ r) + a + o | 0, s) + i | 0 } function y(t, e, n, r, i, a, o, s) { return p(t + (e & n | ~e & r) + a + o | 0, s) + i | 0 } function b(t, e, n, r, i, a, o, s) { return p(t + ((e | ~n) ^ r) + a + o | 0, s) + i | 0 } function v(t, e, n, r, i, a, o, s) { return p(t + (e & r | n & ~r) + a + o | 0, s) + i | 0 } function m(t, e, n, r, i, a, o, s) { return p(t + (e ^ (n | ~r)) + a + o | 0, s) + i | 0 } i(d, a), d.prototype._update = function() { for (var t = o, e = 0; e < 16; ++e) t[e] = this._block.readInt32LE(4 * e); for (var n = 0 | this._a, r = 0 | this._b, i = 0 | this._c, a = 0 | this._d, d = 0 | this._e, _ = 0 | this._a, w = 0 | this._b, x = 0 | this._c, k = 0 | this._d, E = 0 | this._e, A = 0; A < 80; A += 1) { var S, M; A < 16 ? (S = g(n, r, i, a, d, t[s[A]], l[0], c[A]), M = m(_, w, x, k, E, t[u[A]], h[0], f[A])) : A < 32 ? (S = y(n, r, i, a, d, t[s[A]], l[1], c[A]), M = v(_, w, x, k, E, t[u[A]], h[1], f[A])) : A < 48 ? (S = b(n, r, i, a, d, t[s[A]], l[2], c[A]), M = b(_, w, x, k, E, t[u[A]], h[2], f[A])) : A < 64 ? (S = v(n, r, i, a, d, t[s[A]], l[3], c[A]), M = y(_, w, x, k, E, t[u[A]], h[3], f[A])) : (S = m(n, r, i, a, d, t[s[A]], l[4], c[A]), M = g(_, w, x, k, E, t[u[A]], h[4], f[A])), n = d, d = a, a = p(i, 10), i = r, r = S, _ = E, E = k, k = p(x, 10), x = w, w = M } var T = this._b + i + k | 0; this._b = this._c + a + E | 0, this._c = this._d + d + _ | 0, this._d = this._e + n + w | 0, this._e = this._a + r + x | 0, this._a = T }, d.prototype._digest = function() { this._block[this._blockOffset++] = 128, this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), this._blockOffset = 0), this._block.fill(0, this._blockOffset, 56), this._block.writeUInt32LE(this._length[0], 56), this._block.writeUInt32LE(this._length[1], 60), this._update(); var t = r.alloc ? r.alloc(20) : new r(20); return t.writeInt32LE(this._a, 0), t.writeInt32LE(this._b, 4), t.writeInt32LE(this._c, 8), t.writeInt32LE(this._d, 12), t.writeInt32LE(this._e, 16), t }, t.exports = d }, function(t, e, n) { (e = t.exports = function(t) { t = t.toLowerCase(); var n = e[t]; if (!n) throw new Error(t + " is not supported (we accept pull requests)"); return new n }).sha = n(434), e.sha1 = n(435), e.sha224 = n(436), e.sha256 = n(197), e.sha384 = n(437), e.sha512 = n(198) }, function(t, e, n) { "use strict"; var r = n(16); function i(t) { this.options = t, this.type = this.options.type, this.blockSize = 8, this._init(), this.buffer = new Array(this.blockSize), this.bufferOff = 0 } t.exports = i, i.prototype._init = function() {}, i.prototype.update = function(t) { return 0 === t.length ? [] : "decrypt" === this.type ? this._updateDecrypt(t) : this._updateEncrypt(t) }, i.prototype._buffer = function(t, e) { for (var n = Math.min(this.buffer.length - this.bufferOff, t.length - e), r = 0; r < n; r++) this.buffer[this.bufferOff + r] = t[e + r]; return this.bufferOff += n, n }, i.prototype._flushBuffer = function(t, e) { return this._update(this.buffer, 0, t, e), this.bufferOff = 0, this.blockSize }, i.prototype._updateEncrypt = function(t) { var e = 0, n = 0, r = (this.bufferOff + t.length) / this.blockSize | 0, i = new Array(r * this.blockSize); 0 !== this.bufferOff && (e += this._buffer(t, e), this.bufferOff === this.buffer.length && (n += this._flushBuffer(i, n))); for (var a = t.length - (t.length - e) % this.blockSize; e < a; e += this.blockSize) this._update(t, e, i, n), n += this.blockSize; for (; e < t.length; e++, this.bufferOff++) this.buffer[this.bufferOff] = t[e]; return i }, i.prototype._updateDecrypt = function(t) { for (var e = 0, n = 0, r = Math.ceil((this.bufferOff + t.length) / this.blockSize) - 1, i = new Array(r * this.blockSize); r > 0; r--) e += this._buffer(t, e), n += this._flushBuffer(i, n); return e += this._buffer(t, e), i }, i.prototype.final = function(t) { var e, n; return t && (e = this.update(t)), n = "encrypt" === this.type ? this._finalEncrypt() : this._finalDecrypt(), e ? e.concat(n) : n }, i.prototype._pad = function(t, e) { if (0 === e) return !1; for (; e < t.length;) t[e++] = 0; return !0 }, i.prototype._finalEncrypt = function() { if (!this._pad(this.buffer, this.bufferOff)) return []; var t = new Array(this.blockSize); return this._update(this.buffer, 0, t, 0), t }, i.prototype._unpad = function(t) { return t }, i.prototype._finalDecrypt = function() { r.equal(this.bufferOff, this.blockSize, "Not enough data to decrypt"); var t = new Array(this.blockSize); return this._flushBuffer(t, 0), this._unpad(t) } }, function(t, e, n) { var r = n(446), i = n(454), a = n(210); e.createCipher = e.Cipher = r.createCipher, e.createCipheriv = e.Cipheriv = r.createCipheriv, e.createDecipher = e.Decipher = i.createDecipher, e.createDecipheriv = e.Decipheriv = i.createDecipheriv, e.listCiphers = e.getCiphers = function() { return Object.keys(a) } }, function(t, e, n) { var r = { ECB: n(447), CBC: n(448), CFB: n(449), CFB8: n(450), CFB1: n(451), OFB: n(452), CTR: n(208), GCM: n(208) }, i = n(210); for (var a in i) i[a].module = r[i[a].mode]; t.exports = i }, function(t, e, n) { var r; function i(t) { this.rand = t } if (t.exports = function(t) { return r || (r = new i(null)), r.generate(t) }, t.exports.Rand = i, i.prototype.generate = function(t) { return this._rand(t) }, i.prototype._rand = function(t) { if (this.rand.getBytes) return this.rand.getBytes(t); for (var e = new Uint8Array(t), n = 0; n < e.length; n++) e[n] = this.rand.getByte(); return e }, "object" == typeof self) self.crypto && self.crypto.getRandomValues ? i.prototype._rand = function(t) { var e = new Uint8Array(t); return self.crypto.getRandomValues(e), e } : self.msCrypto && self.msCrypto.getRandomValues ? i.prototype._rand = function(t) { var e = new Uint8Array(t); return self.msCrypto.getRandomValues(e), e } : "object" == typeof window && (i.prototype._rand = function() { throw new Error("Not implemented yet") }); else try { var a = n(458); if ("function" != typeof a.randomBytes) throw new Error("Not supported"); i.prototype._rand = function(t) { return a.randomBytes(t) } } catch (t) {} }, function(t, e, n) { (function(e) { var r = n(5), i = n(44); function a(t, n) { var i = function(t) { var e = o(t); return { blinder: e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed(), unblinder: e.invm(t.modulus) } }(n), a = n.modulus.byteLength(), s = (r.mont(n.modulus), new r(t).mul(i.blinder).umod(n.modulus)), u = s.toRed(r.mont(n.prime1)), c = s.toRed(r.mont(n.prime2)), f = n.coefficient, l = n.prime1, h = n.prime2, d = u.redPow(n.exponent1), p = c.redPow(n.exponent2); d = d.fromRed(), p = p.fromRed(); var g = d.isub(p).imul(f).umod(l); return g.imul(h), p.iadd(g), new e(p.imul(i.unblinder).umod(n.modulus).toArray(!1, a)) } function o(t) { for (var e = t.modulus.byteLength(), n = new r(i(e)); n.cmp(t.modulus) >= 0 || !n.umod(t.prime1) || !n.umod(t.prime2);) n = new r(i(e)); return n } t.exports = a, a.getr = o }).call(this, n(8).Buffer) }, function(t, e, n) { "use strict"; var r = e; r.version = n(463).version, r.utils = n(17), r.rand = n(123), r.curve = n(216), r.curves = n(126), r.ec = n(474), r.eddsa = n(478) }, function(t, e, n) { "use strict"; var r, i = e, a = n(127), o = n(216), s = n(17).assert; function u(t) { "short" === t.type ? this.curve = new o.short(t) : "edwards" === t.type ? this.curve = new o.edwards(t) : this.curve = new o.mont(t), this.g = this.curve.g, this.n = this.curve.n, this.hash = t.hash, s(this.g.validate(), "Invalid curve"), s(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O") } function c(t, e) { Object.defineProperty(i, t, { configurable: !0, enumerable: !0, get: function() { var n = new u(e); return Object.defineProperty(i, t, { configurable: !0, enumerable: !0, value: n }), n } }) } i.PresetCurve = u, c("p192", { type: "short", prime: "p192", p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", hash: a.sha256, gRed: !1, g: ["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"] }), c("p224", { type: "short", prime: "p224", p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", hash: a.sha256, gRed: !1, g: ["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"] }), c("p256", { type: "short", prime: null, p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", hash: a.sha256, gRed: !1, g: ["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"] }), c("p384", { type: "short", prime: null, p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", hash: a.sha384, gRed: !1, g: ["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"] }), c("p521", { type: "short", prime: null, p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", hash: a.sha512, gRed: !1, g: ["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"] }), c("curve25519", { type: "mont", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "76d06", b: "1", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: a.sha256, gRed: !1, g: ["9"] }), c("ed25519", { type: "edwards", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "-1", c: "1", d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: a.sha256, gRed: !1, g: ["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", "6666666666666666666666666666666666666666666666666666666666666658"] }); try { r = n(473) } catch (t) { r = void 0 } c("secp256k1", { type: "short", prime: "k256", p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", a: "0", b: "7", n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", h: "1", hash: a.sha256, beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", basis: [{ a: "3086d221a7d46bcde86c90e49284eb15", b: "-e4437ed6010e88286f547fa90abfe4c3" }, { a: "114ca50f7a8e2f3f657c1108d9d44cfd8", b: "3086d221a7d46bcde86c90e49284eb15" }], gRed: !1, g: ["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", r] }) }, function(t, e, n) { var r = e; r.utils = n(21), r.common = n(56), r.sha = n(467), r.ripemd = n(471), r.hmac = n(472), r.sha1 = r.sha.sha1, r.sha256 = r.sha.sha256, r.sha224 = r.sha.sha224, r.sha384 = r.sha.sha384, r.sha512 = r.sha.sha512, r.ripemd160 = r.ripemd.ripemd160 }, function(t, e, n) { var r = n(15); t.exports = function(t, e) { var n = t.append("foreignObject").attr("width", "100000"), i = n.append("xhtml:div"); i.attr("xmlns", "http://www.w3.org/1999/xhtml"); var a = e.label; switch (typeof a) { case "function": i.insert(a); break; case "object": i.insert((function() { return a })); break; default: i.html(a) } r.applyStyle(i, e.labelStyle), i.style("display", "inline-block"), i.style("white-space", "nowrap"); var o = i.node().getBoundingClientRect(); return n.attr("width", o.width).attr("height", o.height), n } }, function(t, e) {}, function(t, e, n) { var r = n(61), i = n(92), a = n(66), o = n(266), s = n(272), u = n(136), c = n(137), f = n(275), l = n(276), h = n(141), d = n(277), p = n(41), g = n(281), y = n(282), b = n(146), v = n(6), m = n(39), _ = n(286), w = n(14), x = n(288), k = n(27), E = 1, A = 2, S = 4, M = "[object Arguments]", T = "[object Function]", D = "[object GeneratorFunction]", C = "[object Object]", N = {}; N[M] = N["[object Array]"] = N["[object ArrayBuffer]"] = N["[object DataView]"] = N["[object Boolean]"] = N["[object Date]"] = N["[object Float32Array]"] = N["[object Float64Array]"] = N["[object Int8Array]"] = N["[object Int16Array]"] = N["[object Int32Array]"] = N["[object Map]"] = N["[object Number]"] = N[C] = N["[object RegExp]"] = N["[object Set]"] = N["[object String]"] = N["[object Symbol]"] = N["[object Uint8Array]"] = N["[object Uint8ClampedArray]"] = N["[object Uint16Array]"] = N["[object Uint32Array]"] = !0, N["[object Error]"] = N[T] = N["[object WeakMap]"] = !1, t.exports = function t(e, n, I, L, B, O) { var R, P = n & E, F = n & A, q = n & S; if (I && (R = B ? I(e, L, B, O) : I(e)), void 0 !== R) return R; if (!w(e)) return e; var j = v(e); if (j) { if (R = g(e), !P) return c(e, R) } else { var U = p(e), z = U == T || U == D; if (m(e)) return u(e, P); if (U == C || U == M || z && !B) { if (R = F || z ? {} : b(e), !P) return F ? l(e, s(R, e)) : f(e, o(R, e)) } else { if (!N[U]) return B ? e : {}; R = y(e, U, P) } } O || (O = new r); var Y = O.get(e); if (Y) return Y; O.set(e, R), x(e) ? e.forEach((function(r) { R.add(t(r, n, I, r, e, O)) })) : _(e) && e.forEach((function(r, i) { R.set(i, t(r, n, I, i, e, O)) })); var V = q ? F ? d : h : F ? keysIn : k, H = j ? void 0 : V(e); return i(H || e, (function(r, i) { H && (r = e[i = r]), a(R, i, t(r, n, I, i, e, O)) })), R } }, function(t, e, n) { (function(e) { var n = "object" == typeof e && e && e.Object === Object && e; t.exports = n }).call(this, n(12)) }, function(t, e) { var n = Function.prototype.toString; t.exports = function(t) { if (null != t) { try { return n.call(t) } catch (t) {} try { return t + "" } catch (t) {} } return "" } }, function(t, e, n) { var r = n(32), i = function() { try { var t = r(Object, "defineProperty"); return t({}, "", {}), t } catch (t) {} }(); t.exports = i }, function(t, e, n) { var r = n(267), i = n(50), a = n(6), o = n(39), s = n(68), u = n(51), c = Object.prototype.hasOwnProperty; t.exports = function(t, e) { var n = a(t), f = !n && i(t), l = !n && !f && o(t), h = !n && !f && !l && u(t), d = n || f || l || h, p = d ? r(t.length, String) : [], g = p.length; for (var y in t) !e && !c.call(t, y) || d && ("length" == y || l && ("offset" == y || "parent" == y) || h && ("buffer" == y || "byteLength" == y || "byteOffset" == y) || s(y, g)) || p.push(y); return p } }, function(t, e) { t.exports = function(t, e) { return function(n) { return t(e(n)) } } }, function(t, e, n) { (function(t) { var r = n(18), i = e && !e.nodeType && e, a = i && "object" == typeof t && t && !t.nodeType && t, o = a && a.exports === i ? r.Buffer : void 0, s = o ? o.allocUnsafe : void 0; t.exports = function(t, e) { if (e) return t.slice(); var n = t.length, r = s ? s(n) : new t.constructor(n); return t.copy(r), r } }).call(this, n(9)(t)) }, function(t, e) { t.exports = function(t, e) { var n = -1, r = t.length; for (e || (e = Array(r)); ++n < r;) e[n] = t[n]; return e } }, function(t, e) { t.exports = function(t, e) { for (var n = -1, r = null == t ? 0 : t.length, i = 0, a = []; ++n < r;) { var o = t[n]; e(o, n, t) && (a[i++] = o) } return a } }, function(t, e) { t.exports = function() { return [] } }, function(t, e, n) { var r = n(97), i = n(71), a = n(96), o = n(139), s = Object.getOwnPropertySymbols ? function(t) { for (var e = []; t;) r(e, a(t)), t = i(t); return e } : o; t.exports = s }, function(t, e, n) { var r = n(142), i = n(96), a = n(27); t.exports = function(t) { return r(t, a, i) } }, function(t, e, n) { var r = n(97), i = n(6); t.exports = function(t, e, n) { var a = e(t); return i(t) ? a : r(a, n(t)) } }, function(t, e, n) { var r = n(32)(n(18), "Set"); t.exports = r }, function(t, e, n) { var r = n(18).Uint8Array; t.exports = r }, function(t, e, n) { var r = n(98); t.exports = function(t, e) { var n = e ? r(t.buffer) : t.buffer; return new t.constructor(n, t.byteOffset, t.length) } }, function(t, e, n) { var r = n(147), i = n(71), a = n(70); t.exports = function(t) { return "function" != typeof t.constructor || a(t) ? {} : r(i(t)) } }, function(t, e, n) { var r = n(14), i = Object.create, a = function() { function t() {} return function(e) { if (!r(e)) return {}; if (i) return i(e); t.prototype = e; var n = new t; return t.prototype = void 0, n } }(); t.exports = a }, function(t, e, n) { var r = n(92), i = n(72), a = n(149), o = n(6); t.exports = function(t, e) { return (o(t) ? r : i)(t, a(e)) } }, function(t, e, n) { var r = n(34); t.exports = function(t) { return "function" == typeof t ? t : r } }, function(t, e, n) { var r = n(138), i = n(292), a = n(24), o = n(6); t.exports = function(t, e) { return (o(t) ? r : i)(t, a(e, 3)) } }, function(t, e, n) { var r = n(295), i = n(20); t.exports = function t(e, n, a, o, s) { return e === n || (null == e || null == n || !i(e) && !i(n) ? e != e && n != n : r(e, n, a, o, t, s)) } }, function(t, e, n) { var r = n(153), i = n(298), a = n(154), o = 1, s = 2; t.exports = function(t, e, n, u, c, f) { var l = n & o, h = t.length, d = e.length; if (h != d && !(l && d > h)) return !1; var p = f.get(t); if (p && f.get(e)) return p == e; var g = -1, y = !0, b = n & s ? new r : void 0; for (f.set(t, e), f.set(e, t); ++g < h;) { var v = t[g], m = e[g]; if (u) var _ = l ? u(m, v, g, e, t, f) : u(v, m, g, t, e, f); if (void 0 !== _) { if (_) continue; y = !1; break } if (b) { if (!i(e, (function(t, e) { if (!a(b, e) && (v === t || c(v, t, n, u, f))) return b.push(e) }))) { y = !1; break } } else if (v !== m && !c(v, m, n, u, f)) { y = !1; break } } return f.delete(t), f.delete(e), y } }, function(t, e, n) { var r = n(91), i = n(296), a = n(297); function o(t) { var e = -1, n = null == t ? 0 : t.length; for (this.__data__ = new r; ++e < n;) this.add(t[e]) } o.prototype.add = o.prototype.push = i, o.prototype.has = a, t.exports = o }, function(t, e) { t.exports = function(t, e) { return t.has(e) } }, function(t, e, n) { var r = n(14); t.exports = function(t) { return t == t && !r(t) } }, function(t, e) { t.exports = function(t, e) { return function(n) { return null != n && (n[t] === e && (void 0 !== e || t in Object(n))) } } }, function(t, e, n) { var r = n(308); t.exports = function(t) { return null == t ? "" : r(t) } }, function(t, e, n) { var r = n(309), i = n(159); t.exports = function(t, e) { return null != t && i(t, e, r) } }, function(t, e, n) { var r = n(73), i = n(50), a = n(6), o = n(68), s = n(93), u = n(52); t.exports = function(t, e, n) { for (var c = -1, f = (e = r(e, t)).length, l = !1; ++c < f;) { var h = u(e[c]); if (!(l = null != t && n(t, h))) break; t = t[h] } return l || ++c != f ? l : !!(f = null == t ? 0 : t.length) && s(f) && o(h, f) && (a(t) || i(t)) } }, function(t, e) { t.exports = function(t) { return function(e) { return null == e ? void 0 : e[t] } } }, function(t, e) { t.exports = function(t) { return void 0 === t } }, function(t, e, n) { var r = n(74), i = n(24), a = n(163), o = n(6); t.exports = function(t, e) { return (o(t) ? r : a)(t, i(e, 3)) } }, function(t, e, n) { var r = n(72), i = n(23); t.exports = function(t, e) { var n = -1, a = i(t) ? Array(t.length) : []; return r(t, (function(t, r, i) { a[++n] = e(t, r, i) })), a } }, function(t, e, n) { var r = n(314), i = n(72), a = n(24), o = n(315), s = n(6); t.exports = function(t, e, n) { var u = s(t) ? r : o, c = arguments.length < 3; return u(t, a(e, 4), n, c, i) } }, function(t, e, n) { var r = n(325), i = Math.max; t.exports = function(t, e, n) { return e = i(void 0 === e ? t.length - 1 : e, 0), function() { for (var a = arguments, o = -1, s = i(a.length - e, 0), u = Array(s); ++o < s;) u[o] = a[e + o]; o = -1; for (var c = Array(e + 1); ++o < e;) c[o] = a[o]; return c[e] = n(u), r(t, this, c) } } }, function(t, e, n) { var r = n(326), i = n(327)(r); t.exports = i }, function(t, e) { t.exports = function(t, e, n, r) { for (var i = t.length, a = n + (r ? 1 : -1); r ? a-- : ++a < i;) if (e(t[a], a, t)) return a; return -1 } }, function(t, e, n) { var r = n(23), i = n(20); t.exports = function(t) { return i(t) && r(t) } }, function(t, e, n) { var r = n(336), i = n(27); t.exports = function(t) { return null == t ? [] : r(t, i(t)) } }, function(t, e, n) { var r = n(13), i = n(171); t.exports = function(t, e, n, r) { return function(t, e, n, r) { var a, o, s = {}, u = new i, c = function(t) { var e = t.v !== a ? t.v : t.w, r = s[e], i = n(t), c = o.distance + i; if (i < 0) throw new Error("dijkstra does not allow negative edge weights. Bad edge: " + t + " Weight: " + i); c < r.distance && (r.distance = c, r.predecessor = a, u.decrease(e, c)) }; t.nodes().forEach((function(t) { var n = t === e ? 0 : Number.POSITIVE_INFINITY; s[t] = { distance: n }, u.add(t, n) })); for (; u.size() > 0 && (a = u.removeMin(), (o = s[a]).distance !== Number.POSITIVE_INFINITY);) r(a).forEach(c); return s }(t, String(e), n || a, r || function(e) { return t.outEdges(e) }) }; var a = r.constant(1) }, function(t, e, n) { var r = n(13); function i() { this._arr = [], this._keyIndices = {} } t.exports = i, i.prototype.size = function() { return this._arr.length }, i.prototype.keys = function() { return this._arr.map((function(t) { return t.key })) }, i.prototype.has = function(t) { return r.has(this._keyIndices, t) }, i.prototype.priority = function(t) { var e = this._keyIndices[t]; if (void 0 !== e) return this._arr[e].priority }, i.prototype.min = function() { if (0 === this.size()) throw new Error("Queue underflow"); return this._arr[0].key }, i.prototype.add = function(t, e) { var n = this._keyIndices; if (t = String(t), !r.has(n, t)) { var i = this._arr, a = i.length; return n[t] = a, i.push({ key: t, priority: e }), this._decrease(a), !0 } return !1 }, i.prototype.removeMin = function() { this._swap(0, this._arr.length - 1); var t = this._arr.pop(); return delete this._keyIndices[t.key], this._heapify(0), t.key }, i.prototype.decrease = function(t, e) { var n = this._keyIndices[t]; if (e > this._arr[n].priority) throw new Error("New priority is greater than current priority. Key: " + t + " Old: " + this._arr[n].priority + " New: " + e); this._arr[n].priority = e, this._decrease(n) }, i.prototype._heapify = function(t) { var e = this._arr, n = 2 * t, r = n + 1, i = t; n < e.length && (i = e[n].priority < e[i].priority ? n : i, r < e.length && (i = e[r].priority < e[i].priority ? r : i), i !== t && (this._swap(t, i), this._heapify(i))) }, i.prototype._decrease = function(t) { for (var e, n = this._arr, r = n[t].priority; 0 !== t && !(n[e = t >> 1].priority < r);) this._swap(t, e), t = e }, i.prototype._swap = function(t, e) { var n = this._arr, r = this._keyIndices, i = n[t], a = n[e]; n[t] = a, n[e] = i, r[a.key] = t, r[i.key] = e } }, function(t, e, n) { var r = n(13); t.exports = function(t) { var e = 0, n = [], i = {}, a = []; return t.nodes().forEach((function(o) { r.has(i, o) || function o(s) { var u = i[s] = { onStack: !0, lowlink: e, index: e++ }; if (n.push(s), t.successors(s).forEach((function(t) { r.has(i, t) ? i[t].onStack && (u.lowlink = Math.min(u.lowlink, i[t].index)) : (o(t), u.lowlink = Math.min(u.lowlink, i[t].lowlink)) })), u.lowlink === u.index) { var c, f = []; do { c = n.pop(), i[c].onStack = !1, f.push(c) } while (s !== c); a.push(f) } }(o) })), a } }, function(t, e, n) { var r = n(13); function i(t) { var e = {}, n = {}, i = []; if (r.each(t.sinks(), (function o(s) { if (r.has(n, s)) throw new a; r.has(e, s) || (n[s] = !0, e[s] = !0, r.each(t.predecessors(s), o), delete n[s], i.push(s)) })), r.size(e) !== t.nodeCount()) throw new a; return i } function a() {} t.exports = i, i.CycleException = a, a.prototype = new Error }, function(t, e, n) { var r = n(13); t.exports = function(t, e, n) { r.isArray(e) || (e = [e]); var i = (t.isDirected() ? t.successors : t.neighbors).bind(t), a = [], o = {}; return r.each(e, (function(e) { if (!t.hasNode(e)) throw new Error("Graph does not have node: " + e); ! function t(e, n, i, a, o, s) { r.has(a, n) || (a[n] = !0, i || s.push(n), r.each(o(n), (function(n) { t(e, n, i, a, o, s) })), i && s.push(n)) }(t, e, "post" === n, o, i, a) })), a } }, function(t, e, n) { var r; try { r = n(59) } catch (t) {} r || (r = window.dagre), t.exports = r }, function(t, e, n) { var r = n(75), i = n(36), a = n(76), o = n(40), s = Object.prototype, u = s.hasOwnProperty, c = r((function(t, e) { t = Object(t); var n = -1, r = e.length, c = r > 2 ? e[2] : void 0; for (c && a(e[0], e[1], c) && (r = 1); ++n < r;) for (var f = e[n], l = o(f), h = -1, d = l.length; ++h < d;) { var p = l[h], g = t[p]; (void 0 === g || i(g, s[p]) && !u.call(t, p)) && (t[p] = f[p]) } return t })); t.exports = c }, function(t, e, n) { var r = n(355), i = 1 / 0, a = 17976931348623157e292; t.exports = function(t) { return t ? (t = r(t)) === i || t === -i ? (t < 0 ? -1 : 1) * a : t == t ? t : 0 : 0 === t ? t : 0 } }, function(t, e, n) { var r = n(107); t.exports = function(t) { return (null == t ? 0 : t.length) ? r(t, 1) : [] } }, function(t, e, n) { var r = n(67), i = n(36); t.exports = function(t, e, n) { (void 0 === n || i(t[e], n)) && (void 0 !== n || e in t) || r(t, e, n) } }, function(t, e, n) { var r = n(33), i = n(71), a = n(20), o = "[object Object]", s = Function.prototype, u = Object.prototype, c = s.toString, f = u.hasOwnProperty, l = c.call(Object); t.exports = function(t) { if (!a(t) || r(t) != o) return !1; var e = i(t); if (null === e) return !0; var n = f.call(e, "constructor") && e.constructor; return "function" == typeof n && n instanceof n && c.call(n) == l } }, function(t, e) { t.exports = function(t, e) { if (("constructor" !== e || "function" != typeof t[e]) && "__proto__" != e) return t[e] } }, function(t, e) { t.exports = function(t, e) { return t < e } }, function(t, e, n) { var r = n(369), i = n(372)((function(t, e) { return null == t ? {} : r(t, e) })); t.exports = i }, function(t, e, n) { var r = n(373)(); t.exports = r }, function(t, e, n) { var r = n(157), i = 0; t.exports = function(t) { var e = ++i; return r(t) + e } }, function(t, e, n) { "use strict"; var r = n(4), i = n(19).Graph, a = n(77).slack; function o(t, e) { return r.forEach(t.nodes(), (function n(i) { r.forEach(e.nodeEdges(i), (function(r) { var o = r.v, s = i === o ? r.w : o; t.hasNode(s) || a(e, r) || (t.setNode(s, {}), t.setEdge(i, s, {}), n(s)) })) })), t.nodeCount() } function s(t, e) { return r.minBy(e.edges(), (function(n) { if (t.hasNode(n.v) !== t.hasNode(n.w)) return a(e, n) })) } function u(t, e, n) { r.forEach(t.nodes(), (function(t) { e.node(t).rank += n })) } t.exports = function(t) { var e, n, r = new i({ directed: !1 }), c = t.nodes()[0], f = t.nodeCount(); r.setNode(c, {}); for (; o(r, t) < f;) e = s(r, t), n = r.hasNode(e.v) ? a(t, e) : -a(t, e), u(r, t, n); return r } }, function(t, e) { t.exports = function(t, e) { return t.intersect(e) } }, function(t, e, n) { var r = n(109); t.exports = function(t, e, n) { return r(t, e, e, n) } }, function(t, e, n) { var r = n(406); t.exports = function(t, e, n) { var i = t.x, a = t.y, o = [], s = Number.POSITIVE_INFINITY, u = Number.POSITIVE_INFINITY; e.forEach((function(t) { s = Math.min(s, t.x), u = Math.min(u, t.y) })); for (var c = i - t.width / 2 - s, f = a - t.height / 2 - u, l = 0; l < e.length; l++) { var h = e[l], d = e[l < e.length - 1 ? l + 1 : 0], p = r(t, n, { x: c + h.x, y: f + h.y }, { x: c + d.x, y: f + d.y }); p && o.push(p) } if (!o.length) return console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", t), t; o.length > 1 && o.sort((function(t, e) { var r = t.x - n.x, i = t.y - n.y, a = Math.sqrt(r * r + i * i), o = e.x - n.x, s = e.y - n.y, u = Math.sqrt(o * o + s * s); return a < u ? -1 : a === u ? 0 : 1 })); return o[0] } }, function(t, e) { t.exports = function(t, e) { var n, r, i = t.x, a = t.y, o = e.x - i, s = e.y - a, u = t.width / 2, c = t.height / 2; Math.abs(s) * u > Math.abs(o) * c ? (s < 0 && (c = -c), n = 0 === s ? 0 : c * o / s, r = c) : (o < 0 && (u = -u), n = u, r = 0 === o ? 0 : u * s / o); return { x: i + n, y: a + r } } }, function(t, e) { var n = {}.toString; t.exports = Array.isArray || function(t) { return "[object Array]" == n.call(t) } }, function(t, e, n) { "use strict"; var r = n(3).Buffer, i = n(112).Transform; function a(t) { i.call(this), this._block = r.allocUnsafe(t), this._blockSize = t, this._blockOffset = 0, this._length = [0, 0, 0, 0], this._finalized = !1 } n(2)(a, i), a.prototype._transform = function(t, e, n) { var r = null; try { this.update(t, e) } catch (t) { r = t } n(r) }, a.prototype._flush = function(t) { var e = null; try { this.push(this.digest()) } catch (t) { e = t } t(e) }, a.prototype.update = function(t, e) { if (function(t, e) { if (!r.isBuffer(t) && "string" != typeof t) throw new TypeError(e + " must be a string or a buffer") }(t, "Data"), this._finalized) throw new Error("Digest already called"); r.isBuffer(t) || (t = r.from(t, e)); for (var n = this._block, i = 0; this._blockOffset + t.length - i >= this._blockSize;) { for (var a = this._blockOffset; a < this._blockSize;) n[a++] = t[i++]; this._update(), this._blockOffset = 0 } for (; i < t.length;) n[this._blockOffset++] = t[i++]; for (var o = 0, s = 8 * t.length; s > 0; ++o) this._length[o] += s, (s = this._length[o] / 4294967296 | 0) > 0 && (this._length[o] -= 4294967296 * s); return this }, a.prototype._update = function() { throw new Error("_update is not implemented") }, a.prototype.digest = function(t) { if (this._finalized) throw new Error("Digest already called"); this._finalized = !0; var e = this._digest(); void 0 !== t && (e = e.toString(t)), this._block.fill(0), this._blockOffset = 0; for (var n = 0; n < 4; ++n) this._length[n] = 0; return e }, a.prototype._digest = function() { throw new Error("_digest is not implemented") }, t.exports = a }, function(t, e, n) { "use strict"; (function(e, r) { var i = n(78); t.exports = m; var a, o = n(191); m.ReadableState = v; n(113).EventEmitter; var s = function(t, e) { return t.listeners(e).length }, u = n(194), c = n(115).Buffer, f = e.Uint8Array || function() {}; var l = n(54); l.inherits = n(2); var h = n(423), d = void 0; d = h && h.debuglog ? h.debuglog("stream") : function() {}; var p, g = n(424), y = n(195); l.inherits(m, u); var b = ["error", "close", "destroy", "pause", "resume"]; function v(t, e) { t = t || {}; var r = e instanceof(a = a || n(35)); this.objectMode = !!t.objectMode, r && (this.objectMode = this.objectMode || !!t.readableObjectMode); var i = t.highWaterMark, o = t.readableHighWaterMark, s = this.objectMode ? 16 : 16384; this.highWaterMark = i || 0 === i ? i : r && (o || 0 === o) ? o : s, this.highWaterMark = Math.floor(this.highWaterMark), this.buffer = new g, this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.destroyed = !1, this.defaultEncoding = t.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, t.encoding && (p || (p = n(117).StringDecoder), this.decoder = new p(t.encoding), this.encoding = t.encoding) } function m(t) { if (a = a || n(35), !(this instanceof m)) return new m(t); this._readableState = new v(t, this), this.readable = !0, t && ("function" == typeof t.read && (this._read = t.read), "function" == typeof t.destroy && (this._destroy = t.destroy)), u.call(this) } function _(t, e, n, r, i) { var a, o = t._readableState; null === e ? (o.reading = !1, function(t, e) { if (e.ended) return; if (e.decoder) { var n = e.decoder.end(); n && n.length && (e.buffer.push(n), e.length += e.objectMode ? 1 : n.length) } e.ended = !0, E(t) }(t, o)) : (i || (a = function(t, e) { var n; r = e, c.isBuffer(r) || r instanceof f || "string" == typeof e || void 0 === e || t.objectMode || (n = new TypeError("Invalid non-string/buffer chunk")); var r; return n }(o, e)), a ? t.emit("error", a) : o.objectMode || e && e.length > 0 ? ("string" == typeof e || o.objectMode || Object.getPrototypeOf(e) === c.prototype || (e = function(t) { return c.from(t) }(e)), r ? o.endEmitted ? t.emit("error", new Error("stream.unshift() after end event")) : w(t, o, e, !0) : o.ended ? t.emit("error", new Error("stream.push() after EOF")) : (o.reading = !1, o.decoder && !n ? (e = o.decoder.write(e), o.objectMode || 0 !== e.length ? w(t, o, e, !1) : S(t, o)) : w(t, o, e, !1))) : r || (o.reading = !1)); return function(t) { return !t.ended && (t.needReadable || t.length < t.highWaterMark || 0 === t.length) }(o) } function w(t, e, n, r) { e.flowing && 0 === e.length && !e.sync ? (t.emit("data", n), t.read(0)) : (e.length += e.objectMode ? 1 : n.length, r ? e.buffer.unshift(n) : e.buffer.push(n), e.needReadable && E(t)), S(t, e) } Object.defineProperty(m.prototype, "destroyed", { get: function() { return void 0 !== this._readableState && this._readableState.destroyed }, set: function(t) { this._readableState && (this._readableState.destroyed = t) } }), m.prototype.destroy = y.destroy, m.prototype._undestroy = y.undestroy, m.prototype._destroy = function(t, e) { this.push(null), e(t) }, m.prototype.push = function(t, e) { var n, r = this._readableState; return r.objectMode ? n = !0 : "string" == typeof t && ((e = e || r.defaultEncoding) !== r.encoding && (t = c.from(t, e), e = ""), n = !0), _(this, t, e, !1, n) }, m.prototype.unshift = function(t) { return _(this, t, null, !0, !1) }, m.prototype.isPaused = function() { return !1 === this._readableState.flowing }, m.prototype.setEncoding = function(t) { return p || (p = n(117).StringDecoder), this._readableState.decoder = new p(t), this._readableState.encoding = t, this }; var x = 8388608; function k(t, e) { return t <= 0 || 0 === e.length && e.ended ? 0 : e.objectMode ? 1 : t != t ? e.flowing && e.length ? e.buffer.head.data.length : e.length : (t > e.highWaterMark && (e.highWaterMark = function(t) { return t >= x ? t = x : (t--, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, t |= t >>> 16, t++), t }(t)), t <= e.length ? t : e.ended ? e.length : (e.needReadable = !0, 0)) } function E(t) { var e = t._readableState; e.needReadable = !1, e.emittedReadable || (d("emitReadable", e.flowing), e.emittedReadable = !0, e.sync ? i.nextTick(A, t) : A(t)) } function A(t) { d("emit readable"), t.emit("readable"), C(t) } function S(t, e) { e.readingMore || (e.readingMore = !0, i.nextTick(M, t, e)) } function M(t, e) { for (var n = e.length; !e.reading && !e.flowing && !e.ended && e.length < e.highWaterMark && (d("maybeReadMore read 0"), t.read(0), n !== e.length);) n = e.length; e.readingMore = !1 } function T(t) { d("readable nexttick read 0"), t.read(0) } function D(t, e) { e.reading || (d("resume read 0"), t.read(0)), e.resumeScheduled = !1, e.awaitDrain = 0, t.emit("resume"), C(t), e.flowing && !e.reading && t.read(0) } function C(t) { var e = t._readableState; for (d("flow", e.flowing); e.flowing && null !== t.read();); } function N(t, e) { return 0 === e.length ? null : (e.objectMode ? n = e.buffer.shift() : !t || t >= e.length ? (n = e.decoder ? e.buffer.join("") : 1 === e.buffer.length ? e.buffer.head.data : e.buffer.concat(e.length), e.buffer.clear()) : n = function(t, e, n) { var r; t < e.head.data.length ? (r = e.head.data.slice(0, t), e.head.data = e.head.data.slice(t)) : r = t === e.head.data.length ? e.shift() : n ? function(t, e) { var n = e.head, r = 1, i = n.data; t -= i.length; for (; n = n.next;) { var a = n.data, o = t > a.length ? a.length : t; if (o === a.length ? i += a : i += a.slice(0, t), 0 === (t -= o)) { o === a.length ? (++r, n.next ? e.head = n.next : e.head = e.tail = null) : (e.head = n, n.data = a.slice(o)); break }++r } return e.length -= r, i }(t, e) : function(t, e) { var n = c.allocUnsafe(t), r = e.head, i = 1; r.data.copy(n), t -= r.data.length; for (; r = r.next;) { var a = r.data, o = t > a.length ? a.length : t; if (a.copy(n, n.length - t, 0, o), 0 === (t -= o)) { o === a.length ? (++i, r.next ? e.head = r.next : e.head = e.tail = null) : (e.head = r, r.data = a.slice(o)); break }++i } return e.length -= i, n }(t, e); return r }(t, e.buffer, e.decoder), n); var n } function I(t) { var e = t._readableState; if (e.length > 0) throw new Error('"endReadable()" called on non-empty stream'); e.endEmitted || (e.ended = !0, i.nextTick(L, e, t)) } function L(t, e) { t.endEmitted || 0 !== t.length || (t.endEmitted = !0, e.readable = !1, e.emit("end")) } function B(t, e) { for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n; return -1 } m.prototype.read = function(t) { d("read", t), t = parseInt(t, 10); var e = this._readableState, n = t; if (0 !== t && (e.emittedReadable = !1), 0 === t && e.needReadable && (e.length >= e.highWaterMark || e.ended)) return d("read: emitReadable", e.length, e.ended), 0 === e.length && e.ended ? I(this) : E(this), null; if (0 === (t = k(t, e)) && e.ended) return 0 === e.length && I(this), null; var r, i = e.needReadable; return d("need readable", i), (0 === e.length || e.length - t < e.highWaterMark) && d("length less than watermark", i = !0), e.ended || e.reading ? d("reading or ended", i = !1) : i && (d("do read"), e.reading = !0, e.sync = !0, 0 === e.length && (e.needReadable = !0), this._read(e.highWaterMark), e.sync = !1, e.reading || (t = k(n, e))), null === (r = t > 0 ? N(t, e) : null) ? (e.needReadable = !0, t = 0) : e.length -= t, 0 === e.length && (e.ended || (e.needReadable = !0), n !== t && e.ended && I(this)), null !== r && this.emit("data", r), r }, m.prototype._read = function(t) { this.emit("error", new Error("_read() is not implemented")) }, m.prototype.pipe = function(t, e) { var n = this, a = this._readableState; switch (a.pipesCount) { case 0: a.pipes = t; break; case 1: a.pipes = [a.pipes, t]; break; default: a.pipes.push(t) } a.pipesCount += 1, d("pipe count=%d opts=%j", a.pipesCount, e); var u = (!e || !1 !== e.end) && t !== r.stdout && t !== r.stderr ? f : m; function c(e, r) { d("onunpipe"), e === n && r && !1 === r.hasUnpiped && (r.hasUnpiped = !0, d("cleanup"), t.removeListener("close", b), t.removeListener("finish", v), t.removeListener("drain", l), t.removeListener("error", y), t.removeListener("unpipe", c), n.removeListener("end", f), n.removeListener("end", m), n.removeListener("data", g), h = !0, !a.awaitDrain || t._writableState && !t._writableState.needDrain || l()) } function f() { d("onend"), t.end() } a.endEmitted ? i.nextTick(u) : n.once("end", u), t.on("unpipe", c); var l = function(t) { return function() { var e = t._readableState; d("pipeOnDrain", e.awaitDrain), e.awaitDrain && e.awaitDrain--, 0 === e.awaitDrain && s(t, "data") && (e.flowing = !0, C(t)) } }(n); t.on("drain", l); var h = !1; var p = !1; function g(e) { d("ondata"), p = !1, !1 !== t.write(e) || p || ((1 === a.pipesCount && a.pipes === t || a.pipesCount > 1 && -1 !== B(a.pipes, t)) && !h && (d("false write response, pause", n._readableState.awaitDrain), n._readableState.awaitDrain++, p = !0), n.pause()) } function y(e) { d("onerror", e), m(), t.removeListener("error", y), 0 === s(t, "error") && t.emit("error", e) } function b() { t.removeListener("finish", v), m() } function v() { d("onfinish"), t.removeListener("close", b), m() } function m() { d("unpipe"), n.unpipe(t) } return n.on("data", g), function(t, e, n) { if ("function" == typeof t.prependListener) return t.prependListener(e, n); t._events && t._events[e] ? o(t._events[e]) ? t._events[e].unshift(n) : t._events[e] = [n, t._events[e]] : t.on(e, n) }(t, "error", y), t.once("close", b), t.once("finish", v), t.emit("pipe", n), a.flowing || (d("pipe resume"), n.resume()), t }, m.prototype.unpipe = function(t) { var e = this._readableState, n = { hasUnpiped: !1 }; if (0 === e.pipesCount) return this; if (1 === e.pipesCount) return t && t !== e.pipes ? this : (t || (t = e.pipes), e.pipes = null, e.pipesCount = 0, e.flowing = !1, t && t.emit("unpipe", this, n), this); if (!t) { var r = e.pipes, i = e.pipesCount; e.pipes = null, e.pipesCount = 0, e.flowing = !1; for (var a = 0; a < i; a++) r[a].emit("unpipe", this, n); return this } var o = B(e.pipes, t); return -1 === o ? this : (e.pipes.splice(o, 1), e.pipesCount -= 1, 1 === e.pipesCount && (e.pipes = e.pipes[0]), t.emit("unpipe", this, n), this) }, m.prototype.on = function(t, e) { var n = u.prototype.on.call(this, t, e); if ("data" === t) !1 !== this._readableState.flowing && this.resume(); else if ("readable" === t) { var r = this._readableState; r.endEmitted || r.readableListening || (r.readableListening = r.needReadable = !0, r.emittedReadable = !1, r.reading ? r.length && E(this) : i.nextTick(T, this)) } return n }, m.prototype.addListener = m.prototype.on, m.prototype.resume = function() { var t = this._readableState; return t.flowing || (d("resume"), t.flowing = !0, function(t, e) { e.resumeScheduled || (e.resumeScheduled = !0, i.nextTick(D, t, e)) }(this, t)), this }, m.prototype.pause = function() { return d("call pause flowing=%j", this._readableState.flowing), !1 !== this._readableState.flowing && (d("pause"), this._readableState.flowing = !1, this.emit("pause")), this }, m.prototype.wrap = function(t) { var e = this, n = this._readableState, r = !1; for (var i in t.on("end", (function() { if (d("wrapped end"), n.decoder && !n.ended) { var t = n.decoder.end(); t && t.length && e.push(t) } e.push(null) })), t.on("data", (function(i) { (d("wrapped data"), n.decoder && (i = n.decoder.write(i)), n.objectMode && null == i) || (n.objectMode || i && i.length) && (e.push(i) || (r = !0, t.pause())) })), t) void 0 === this[i] && "function" == typeof t[i] && (this[i] = function(e) { return function() { return t[e].apply(t, arguments) } }(i)); for (var a = 0; a < b.length; a++) t.on(b[a], this.emit.bind(this, b[a])); return this._read = function(e) { d("wrapped _read", e), r && (r = !1, t.resume()) }, this }, Object.defineProperty(m.prototype, "readableHighWaterMark", { enumerable: !1, get: function() { return this._readableState.highWaterMark } }), m._fromList = N }).call(this, n(12), n(7)) }, function(t, e, n) { t.exports = n(113).EventEmitter }, function(t, e, n) { "use strict"; var r = n(78); function i(t, e) { t.emit("error", e) } t.exports = { destroy: function(t, e) { var n = this, a = this._readableState && this._readableState.destroyed, o = this._writableState && this._writableState.destroyed; return a || o ? (e ? e(t) : !t || this._writableState && this._writableState.errorEmitted || r.nextTick(i, this, t), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(t || null, (function(t) { !e && t ? (r.nextTick(i, n, t), n._writableState && (n._writableState.errorEmitted = !0)) : e && e(t) })), this) }, undestroy: function() { this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1) } } }, function(t, e, n) { "use strict"; t.exports = o; var r = n(35), i = n(54); function a(t, e) { var n = this._transformState; n.transforming = !1; var r = n.writecb; if (!r) return this.emit("error", new Error("write callback called multiple times")); n.writechunk = null, n.writecb = null, null != e && this.push(e), r(t); var i = this._readableState; i.reading = !1, (i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark) } function o(t) { if (!(this instanceof o)) return new o(t); r.call(this, t), this._transformState = { afterTransform: a.bind(this), needTransform: !1, transforming: !1, writecb: null, writechunk: null, writeencoding: null }, this._readableState.needReadable = !0, this._readableState.sync = !1, t && ("function" == typeof t.transform && (this._transform = t.transform), "function" == typeof t.flush && (this._flush = t.flush)), this.on("prefinish", s) } function s() { var t = this; "function" == typeof this._flush ? this._flush((function(e, n) { u(t, e, n) })) : u(this, null, null) } function u(t, e, n) { if (e) return t.emit("error", e); if (null != n && t.push(n), t._writableState.length) throw new Error("Calling transform done when ws.length != 0"); if (t._transformState.transforming) throw new Error("Calling transform done when still transforming"); return t.push(null) } i.inherits = n(2), i.inherits(o, r), o.prototype.push = function(t, e) { return this._transformState.needTransform = !1, r.prototype.push.call(this, t, e) }, o.prototype._transform = function(t, e, n) { throw new Error("_transform() is not implemented") }, o.prototype._write = function(t, e, n) { var r = this._transformState; if (r.writecb = n, r.writechunk = t, r.writeencoding = e, !r.transforming) { var i = this._readableState; (r.needTransform || i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark) } }, o.prototype._read = function(t) { var e = this._transformState; null !== e.writechunk && e.writecb && !e.transforming ? (e.transforming = !0, this._transform(e.writechunk, e.writeencoding, e.afterTransform)) : e.needTransform = !0 }, o.prototype._destroy = function(t, e) { var n = this; r.prototype._destroy.call(this, t, (function(t) { e(t), n.emit("close") })) } }, function(t, e, n) { var r = n(2), i = n(45), a = n(3).Buffer, o = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], s = new Array(64); function u() { this.init(), this._w = s, i.call(this, 64, 56) } function c(t, e, n) { return n ^ t & (e ^ n) } function f(t, e, n) { return t & e | n & (t | e) } function l(t) { return (t >>> 2 | t << 30) ^ (t >>> 13 | t << 19) ^ (t >>> 22 | t << 10) } function h(t) { return (t >>> 6 | t << 26) ^ (t >>> 11 | t << 21) ^ (t >>> 25 | t << 7) } function d(t) { return (t >>> 7 | t << 25) ^ (t >>> 18 | t << 14) ^ t >>> 3 } r(u, i), u.prototype.init = function() { return this._a = 1779033703, this._b = 3144134277, this._c = 1013904242, this._d = 2773480762, this._e = 1359893119, this._f = 2600822924, this._g = 528734635, this._h = 1541459225, this }, u.prototype._update = function(t) { for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, a = 0 | this._c, s = 0 | this._d, u = 0 | this._e, p = 0 | this._f, g = 0 | this._g, y = 0 | this._h, b = 0; b < 16; ++b) n[b] = t.readInt32BE(4 * b); for (; b < 64; ++b) n[b] = 0 | (((e = n[b - 2]) >>> 17 | e << 15) ^ (e >>> 19 | e << 13) ^ e >>> 10) + n[b - 7] + d(n[b - 15]) + n[b - 16]; for (var v = 0; v < 64; ++v) { var m = y + h(u) + c(u, p, g) + o[v] + n[v] | 0, _ = l(r) + f(r, i, a) | 0; y = g, g = p, p = u, u = s + m | 0, s = a, a = i, i = r, r = m + _ | 0 } this._a = r + this._a | 0, this._b = i + this._b | 0, this._c = a + this._c | 0, this._d = s + this._d | 0, this._e = u + this._e | 0, this._f = p + this._f | 0, this._g = g + this._g | 0, this._h = y + this._h | 0 }, u.prototype._hash = function() { var t = a.allocUnsafe(32); return t.writeInt32BE(this._a, 0), t.writeInt32BE(this._b, 4), t.writeInt32BE(this._c, 8), t.writeInt32BE(this._d, 12), t.writeInt32BE(this._e, 16), t.writeInt32BE(this._f, 20), t.writeInt32BE(this._g, 24), t.writeInt32BE(this._h, 28), t }, t.exports = u }, function(t, e, n) { var r = n(2), i = n(45), a = n(3).Buffer, o = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591], s = new Array(160); function u() { this.init(), this._w = s, i.call(this, 128, 112) } function c(t, e, n) { return n ^ t & (e ^ n) } function f(t, e, n) { return t & e | n & (t | e) } function l(t, e) { return (t >>> 28 | e << 4) ^ (e >>> 2 | t << 30) ^ (e >>> 7 | t << 25) } function h(t, e) { return (t >>> 14 | e << 18) ^ (t >>> 18 | e << 14) ^ (e >>> 9 | t << 23) } function d(t, e) { return (t >>> 1 | e << 31) ^ (t >>> 8 | e << 24) ^ t >>> 7 } function p(t, e) { return (t >>> 1 | e << 31) ^ (t >>> 8 | e << 24) ^ (t >>> 7 | e << 25) } function g(t, e) { return (t >>> 19 | e << 13) ^ (e >>> 29 | t << 3) ^ t >>> 6 } function y(t, e) { return (t >>> 19 | e << 13) ^ (e >>> 29 | t << 3) ^ (t >>> 6 | e << 26) } function b(t, e) { return t >>> 0 < e >>> 0 ? 1 : 0 } r(u, i), u.prototype.init = function() { return this._ah = 1779033703, this._bh = 3144134277, this._ch = 1013904242, this._dh = 2773480762, this._eh = 1359893119, this._fh = 2600822924, this._gh = 528734635, this._hh = 1541459225, this._al = 4089235720, this._bl = 2227873595, this._cl = 4271175723, this._dl = 1595750129, this._el = 2917565137, this._fl = 725511199, this._gl = 4215389547, this._hl = 327033209, this }, u.prototype._update = function(t) { for (var e = this._w, n = 0 | this._ah, r = 0 | this._bh, i = 0 | this._ch, a = 0 | this._dh, s = 0 | this._eh, u = 0 | this._fh, v = 0 | this._gh, m = 0 | this._hh, _ = 0 | this._al, w = 0 | this._bl, x = 0 | this._cl, k = 0 | this._dl, E = 0 | this._el, A = 0 | this._fl, S = 0 | this._gl, M = 0 | this._hl, T = 0; T < 32; T += 2) e[T] = t.readInt32BE(4 * T), e[T + 1] = t.readInt32BE(4 * T + 4); for (; T < 160; T += 2) { var D = e[T - 30], C = e[T - 30 + 1], N = d(D, C), I = p(C, D), L = g(D = e[T - 4], C = e[T - 4 + 1]), B = y(C, D), O = e[T - 14], R = e[T - 14 + 1], P = e[T - 32], F = e[T - 32 + 1], q = I + R | 0, j = N + O + b(q, I) | 0; j = (j = j + L + b(q = q + B | 0, B) | 0) + P + b(q = q + F | 0, F) | 0, e[T] = j, e[T + 1] = q } for (var U = 0; U < 160; U += 2) { j = e[U], q = e[U + 1]; var z = f(n, r, i), Y = f(_, w, x), V = l(n, _), H = l(_, n), G = h(s, E), $ = h(E, s), W = o[U], K = o[U + 1], X = c(s, u, v), Z = c(E, A, S), J = M + $ | 0, Q = m + G + b(J, M) | 0; Q = (Q = (Q = Q + X + b(J = J + Z | 0, Z) | 0) + W + b(J = J + K | 0, K) | 0) + j + b(J = J + q | 0, q) | 0; var tt = H + Y | 0, et = V + z + b(tt, H) | 0; m = v, M = S, v = u, S = A, u = s, A = E, s = a + Q + b(E = k + J | 0, k) | 0, a = i, k = x, i = r, x = w, r = n, w = _, n = Q + et + b(_ = J + tt | 0, J) | 0 } this._al = this._al + _ | 0, this._bl = this._bl + w | 0, this._cl = this._cl + x | 0, this._dl = this._dl + k | 0, this._el = this._el + E | 0, this._fl = this._fl + A | 0, this._gl = this._gl + S | 0, this._hl = this._hl + M | 0, this._ah = this._ah + n + b(this._al, _) | 0, this._bh = this._bh + r + b(this._bl, w) | 0, this._ch = this._ch + i + b(this._cl, x) | 0, this._dh = this._dh + a + b(this._dl, k) | 0, this._eh = this._eh + s + b(this._el, E) | 0, this._fh = this._fh + u + b(this._fl, A) | 0, this._gh = this._gh + v + b(this._gl, S) | 0, this._hh = this._hh + m + b(this._hl, M) | 0 }, u.prototype._hash = function() { var t = a.allocUnsafe(64); function e(e, n, r) { t.writeInt32BE(e, r), t.writeInt32BE(n, r + 4) } return e(this._ah, this._al, 0), e(this._bh, this._bl, 8), e(this._ch, this._cl, 16), e(this._dh, this._dl, 24), e(this._eh, this._el, 32), e(this._fh, this._fl, 40), e(this._gh, this._gl, 48), e(this._hh, this._hl, 56), t }, t.exports = u }, function(t, e, n) { "use strict"; var r = n(2), i = n(438), a = n(31), o = n(3).Buffer, s = n(200), u = n(118), c = n(119), f = o.alloc(128); function l(t, e) { a.call(this, "digest"), "string" == typeof e && (e = o.from(e)); var n = "sha512" === t || "sha384" === t ? 128 : 64; (this._alg = t, this._key = e, e.length > n) ? e = ("rmd160" === t ? new u : c(t)).update(e).digest(): e.length < n && (e = o.concat([e, f], n)); for (var r = this._ipad = o.allocUnsafe(n), i = this._opad = o.allocUnsafe(n), s = 0; s < n; s++) r[s] = 54 ^ e[s], i[s] = 92 ^ e[s]; this._hash = "rmd160" === t ? new u : c(t), this._hash.update(r) } r(l, a), l.prototype._update = function(t) { this._hash.update(t) }, l.prototype._final = function() { var t = this._hash.digest(); return ("rmd160" === this._alg ? new u : c(this._alg)).update(this._opad).update(t).digest() }, t.exports = function(t, e) { return "rmd160" === (t = t.toLowerCase()) || "ripemd160" === t ? new l("rmd160", e) : "md5" === t ? new i(s, e) : new l(t, e) } }, function(t, e, n) { var r = n(111); t.exports = function(t) { return (new r).update(t).digest() } }, function(t) { t.exports = JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}') }, function(t, e, n) { e.pbkdf2 = n(440), e.pbkdf2Sync = n(205) }, function(t, e, n) { (function(e) { var n = Math.pow(2, 30) - 1; function r(t, n) { if ("string" != typeof t && !e.isBuffer(t)) throw new TypeError(n + " must be a buffer or string") } t.exports = function(t, e, i, a) { if (r(t, "Password"), r(e, "Salt"), "number" != typeof i) throw new TypeError("Iterations not a number"); if (i < 0) throw new TypeError("Bad iterations"); if ("number" != typeof a) throw new TypeError("Key length not a number"); if (a < 0 || a > n || a != a) throw new TypeError("Bad key length") } }).call(this, n(8).Buffer) }, function(t, e, n) { (function(e) { var n; e.browser ? n = "utf-8" : n = parseInt(e.version.split(".")[0].slice(1), 10) >= 6 ? "utf-8" : "binary"; t.exports = n }).call(this, n(7)) }, function(t, e, n) { var r = n(200), i = n(118), a = n(119), o = n(203), s = n(204), u = n(3).Buffer, c = u.alloc(128), f = { md5: 16, sha1: 20, sha224: 28, sha256: 32, sha384: 48, sha512: 64, rmd160: 20, ripemd160: 20 }; function l(t, e, n) { var o = function(t) { return "rmd160" === t || "ripemd160" === t ? function(t) { return (new i).update(t).digest() } : "md5" === t ? r : function(e) { return a(t).update(e).digest() } }(t), s = "sha512" === t || "sha384" === t ? 128 : 64; e.length > s ? e = o(e) : e.length < s && (e = u.concat([e, c], s)); for (var l = u.allocUnsafe(s + f[t]), h = u.allocUnsafe(s + f[t]), d = 0; d < s; d++) l[d] = 54 ^ e[d], h[d] = 92 ^ e[d]; var p = u.allocUnsafe(s + n + 4); l.copy(p, 0, 0, s), this.ipad1 = p, this.ipad2 = l, this.opad = h, this.alg = t, this.blocksize = s, this.hash = o, this.size = f[t] } l.prototype.run = function(t, e) { return t.copy(e, this.blocksize), this.hash(e).copy(this.opad, this.blocksize), this.hash(this.opad) }, t.exports = function(t, e, n, r, i) { o(t, e, n, r), u.isBuffer(t) || (t = u.from(t, s)), u.isBuffer(e) || (e = u.from(e, s)); var a = new l(i = i || "sha1", t, e.length), c = u.allocUnsafe(r), h = u.allocUnsafe(e.length + 4); e.copy(h, 0, 0, e.length); for (var d = 0, p = f[i], g = Math.ceil(r / p), y = 1; y <= g; y++) { h.writeUInt32BE(y, e.length); for (var b = a.run(h, a.ipad1), v = b, m = 1; m < n; m++) { v = a.run(v, a.ipad2); for (var _ = 0; _ < p; _++) b[_] ^= v[_] } b.copy(c, d), d += p } return c } }, function(t, e, n) { "use strict"; e.readUInt32BE = function(t, e) { return (t[0 + e] << 24 | t[1 + e] << 16 | t[2 + e] << 8 | t[3 + e]) >>> 0 }, e.writeUInt32BE = function(t, e, n) { t[0 + n] = e >>> 24, t[1 + n] = e >>> 16 & 255, t[2 + n] = e >>> 8 & 255, t[3 + n] = 255 & e }, e.ip = function(t, e, n, r) { for (var i = 0, a = 0, o = 6; o >= 0; o -= 2) { for (var s = 0; s <= 24; s += 8) i <<= 1, i |= e >>> s + o & 1; for (s = 0; s <= 24; s += 8) i <<= 1, i |= t >>> s + o & 1 } for (o = 6; o >= 0; o -= 2) { for (s = 1; s <= 25; s += 8) a <<= 1, a |= e >>> s + o & 1; for (s = 1; s <= 25; s += 8) a <<= 1, a |= t >>> s + o & 1 } n[r + 0] = i >>> 0, n[r + 1] = a >>> 0 }, e.rip = function(t, e, n, r) { for (var i = 0, a = 0, o = 0; o < 4; o++) for (var s = 24; s >= 0; s -= 8) i <<= 1, i |= e >>> s + o & 1, i <<= 1, i |= t >>> s + o & 1; for (o = 4; o < 8; o++) for (s = 24; s >= 0; s -= 8) a <<= 1, a |= e >>> s + o & 1, a <<= 1, a |= t >>> s + o & 1; n[r + 0] = i >>> 0, n[r + 1] = a >>> 0 }, e.pc1 = function(t, e, n, r) { for (var i = 0, a = 0, o = 7; o >= 5; o--) { for (var s = 0; s <= 24; s += 8) i <<= 1, i |= e >> s + o & 1; for (s = 0; s <= 24; s += 8) i <<= 1, i |= t >> s + o & 1 } for (s = 0; s <= 24; s += 8) i <<= 1, i |= e >> s + o & 1; for (o = 1; o <= 3; o++) { for (s = 0; s <= 24; s += 8) a <<= 1, a |= e >> s + o & 1; for (s = 0; s <= 24; s += 8) a <<= 1, a |= t >> s + o & 1 } for (s = 0; s <= 24; s += 8) a <<= 1, a |= t >> s + o & 1; n[r + 0] = i >>> 0, n[r + 1] = a >>> 0 }, e.r28shl = function(t, e) { return t << e & 268435455 | t >>> 28 - e }; var r = [14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24]; e.pc2 = function(t, e, n, i) { for (var a = 0, o = 0, s = r.length >>> 1, u = 0; u < s; u++) a <<= 1, a |= t >>> r[u] & 1; for (u = s; u < r.length; u++) o <<= 1, o |= e >>> r[u] & 1; n[i + 0] = a >>> 0, n[i + 1] = o >>> 0 }, e.expand = function(t, e, n) { var r = 0, i = 0; r = (1 & t) << 5 | t >>> 27; for (var a = 23; a >= 15; a -= 4) r <<= 6, r |= t >>> a & 63; for (a = 11; a >= 3; a -= 4) i |= t >>> a & 63, i <<= 6; i |= (31 & t) << 1 | t >>> 31, e[n + 0] = r >>> 0, e[n + 1] = i >>> 0 }; var i = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11]; e.substitute = function(t, e) { for (var n = 0, r = 0; r < 4; r++) { n <<= 4, n |= i[64 * r + (t >>> 18 - 6 * r & 63)] } for (r = 0; r < 4; r++) { n <<= 4, n |= i[256 + 64 * r + (e >>> 18 - 6 * r & 63)] } return n >>> 0 }; var a = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7]; e.permute = function(t) { for (var e = 0, n = 0; n < a.length; n++) e <<= 1, e |= t >>> a[n] & 1; return e >>> 0 }, e.padSplit = function(t, e, n) { for (var r = t.toString(2); r.length < e;) r = "0" + r; for (var i = [], a = 0; a < e; a += n) i.push(r.slice(a, a + n)); return i.join(" ") } }, function(t, e, n) { "use strict"; var r = n(16), i = n(2), a = n(206), o = n(120); function s() { this.tmp = new Array(2), this.keys = null } function u(t) { o.call(this, t); var e = new s; this._desState = e, this.deriveKeys(e, t.key) } i(u, o), t.exports = u, u.create = function(t) { return new u(t) }; var c = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1]; u.prototype.deriveKeys = function(t, e) { t.keys = new Array(32), r.equal(e.length, this.blockSize, "Invalid key length"); var n = a.readUInt32BE(e, 0), i = a.readUInt32BE(e, 4); a.pc1(n, i, t.tmp, 0), n = t.tmp[0], i = t.tmp[1]; for (var o = 0; o < t.keys.length; o += 2) { var s = c[o >>> 1]; n = a.r28shl(n, s), i = a.r28shl(i, s), a.pc2(n, i, t.keys, o) } }, u.prototype._update = function(t, e, n, r) { var i = this._desState, o = a.readUInt32BE(t, e), s = a.readUInt32BE(t, e + 4); a.ip(o, s, i.tmp, 0), o = i.tmp[0], s = i.tmp[1], "encrypt" === this.type ? this._encrypt(i, o, s, i.tmp, 0) : this._decrypt(i, o, s, i.tmp, 0), o = i.tmp[0], s = i.tmp[1], a.writeUInt32BE(n, o, r), a.writeUInt32BE(n, s, r + 4) }, u.prototype._pad = function(t, e) { for (var n = t.length - e, r = e; r < t.length; r++) t[r] = n; return !0 }, u.prototype._unpad = function(t) { for (var e = t[t.length - 1], n = t.length - e; n < t.length; n++) r.equal(t[n], e); return t.slice(0, t.length - e) }, u.prototype._encrypt = function(t, e, n, r, i) { for (var o = e, s = n, u = 0; u < t.keys.length; u += 2) { var c = t.keys[u], f = t.keys[u + 1]; a.expand(s, t.tmp, 0), c ^= t.tmp[0], f ^= t.tmp[1]; var l = a.substitute(c, f), h = s; s = (o ^ a.permute(l)) >>> 0, o = h } a.rip(s, o, r, i) }, u.prototype._decrypt = function(t, e, n, r, i) { for (var o = n, s = e, u = t.keys.length - 2; u >= 0; u -= 2) { var c = t.keys[u], f = t.keys[u + 1]; a.expand(o, t.tmp, 0), c ^= t.tmp[0], f ^= t.tmp[1]; var l = a.substitute(c, f), h = o; o = (s ^ a.permute(l)) >>> 0, s = h } a.rip(o, s, r, i) } }, function(t, e, n) { var r = n(55), i = n(3).Buffer, a = n(209); function o(t) { var e = t._cipher.encryptBlockRaw(t._prev); return a(t._prev), e } e.encrypt = function(t, e) { var n = Math.ceil(e.length / 16), a = t._cache.length; t._cache = i.concat([t._cache, i.allocUnsafe(16 * n)]); for (var s = 0; s < n; s++) { var u = o(t), c = a + 16 * s; t._cache.writeUInt32BE(u[0], c + 0), t._cache.writeUInt32BE(u[1], c + 4), t._cache.writeUInt32BE(u[2], c + 8), t._cache.writeUInt32BE(u[3], c + 12) } var f = t._cache.slice(0, e.length); return t._cache = t._cache.slice(e.length), r(e, f) } }, function(t, e) { t.exports = function(t) { for (var e, n = t.length; n--;) { if (255 !== (e = t.readUInt8(n))) { e++, t.writeUInt8(e, n); break } t.writeUInt8(0, n) } } }, function(t) { t.exports = JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}') }, function(t, e, n) { var r = n(79), i = n(3).Buffer, a = n(31), o = n(2), s = n(453), u = n(55), c = n(209); function f(t, e, n, o) { a.call(this); var u = i.alloc(4, 0); this._cipher = new r.AES(e); var f = this._cipher.encryptBlock(u); this._ghash = new s(f), n = function(t, e, n) { if (12 === e.length) return t._finID = i.concat([e, i.from([0, 0, 0, 1])]), i.concat([e, i.from([0, 0, 0, 2])]); var r = new s(n), a = e.length, o = a % 16; r.update(e), o && (o = 16 - o, r.update(i.alloc(o, 0))), r.update(i.alloc(8, 0)); var u = 8 * a, f = i.alloc(8); f.writeUIntBE(u, 0, 8), r.update(f), t._finID = r.state; var l = i.from(t._finID); return c(l), l }(this, n, f), this._prev = i.from(n), this._cache = i.allocUnsafe(0), this._secCache = i.allocUnsafe(0), this._decrypt = o, this._alen = 0, this._len = 0, this._mode = t, this._authTag = null, this._called = !1 } o(f, a), f.prototype._update = function(t) { if (!this._called && this._alen) { var e = 16 - this._alen % 16; e < 16 && (e = i.alloc(e, 0), this._ghash.update(e)) } this._called = !0; var n = this._mode.encrypt(this, t); return this._decrypt ? this._ghash.update(t) : this._ghash.update(n), this._len += t.length, n }, f.prototype._final = function() { if (this._decrypt && !this._authTag) throw new Error("Unsupported state or unable to authenticate data"); var t = u(this._ghash.final(8 * this._alen, 8 * this._len), this._cipher.encryptBlock(this._finID)); if (this._decrypt && function(t, e) { var n = 0; t.length !== e.length && n++; for (var r = Math.min(t.length, e.length), i = 0; i < r; ++i) n += t[i] ^ e[i]; return n }(t, this._authTag)) throw new Error("Unsupported state or unable to authenticate data"); this._authTag = t, this._cipher.scrub() }, f.prototype.getAuthTag = function() { if (this._decrypt || !i.isBuffer(this._authTag)) throw new Error("Attempting to get auth tag in unsupported state"); return this._authTag }, f.prototype.setAuthTag = function(t) { if (!this._decrypt) throw new Error("Attempting to set auth tag in unsupported state"); this._authTag = t }, f.prototype.setAAD = function(t) { if (this._called) throw new Error("Attempting to set AAD in unsupported state"); this._ghash.update(t), this._alen += t.length }, t.exports = f }, function(t, e, n) { var r = n(79), i = n(3).Buffer, a = n(31); function o(t, e, n, o) { a.call(this), this._cipher = new r.AES(e), this._prev = i.from(n), this._cache = i.allocUnsafe(0), this._secCache = i.allocUnsafe(0), this._decrypt = o, this._mode = t } n(2)(o, a), o.prototype._update = function(t) { return this._mode.encrypt(this, t, this._decrypt) }, o.prototype._final = function() { this._cipher.scrub() }, t.exports = o }, function(t, e, n) { var r = n(44); t.exports = v, v.simpleSieve = y, v.fermatTest = b; var i = n(5), a = new i(24), o = new(n(214)), s = new i(1), u = new i(2), c = new i(5), f = (new i(16), new i(8), new i(10)), l = new i(3), h = (new i(7), new i(11)), d = new i(4), p = (new i(12), null); function g() { if (null !== p) return p; var t = []; t[0] = 2; for (var e = 1, n = 3; n < 1048576; n += 2) { for (var r = Math.ceil(Math.sqrt(n)), i = 0; i < e && t[i] <= r && n % t[i] != 0; i++); e !== i && t[i] <= r || (t[e++] = n) } return p = t, t } function y(t) { for (var e = g(), n = 0; n < e.length; n++) if (0 === t.modn(e[n])) return 0 === t.cmpn(e[n]); return !0 } function b(t) { var e = i.mont(t); return 0 === u.toRed(e).redPow(t.subn(1)).fromRed().cmpn(1) } function v(t, e) { if (t < 16) return new i(2 === e || 5 === e ? [140, 123] : [140, 39]); var n, p; for (e = new i(e);;) { for (n = new i(r(Math.ceil(t / 8))); n.bitLength() > t;) n.ishrn(1); if (n.isEven() && n.iadd(s), n.testn(1) || n.iadd(u), e.cmp(u)) { if (!e.cmp(c)) for (; n.mod(f).cmp(l);) n.iadd(d) } else for (; n.mod(a).cmp(h);) n.iadd(d); if (y(p = n.shrn(1)) && y(n) && b(p) && b(n) && o.test(p) && o.test(n)) return n } } }, function(t, e, n) { var r = n(5), i = n(123); function a(t) { this.rand = t || new i.Rand } t.exports = a, a.create = function(t) { return new a(t) }, a.prototype._randbelow = function(t) { var e = t.bitLength(), n = Math.ceil(e / 8); do { var i = new r(this.rand.generate(n)) } while (i.cmp(t) >= 0); return i }, a.prototype._randrange = function(t, e) { var n = e.sub(t); return t.add(this._randbelow(n)) }, a.prototype.test = function(t, e, n) { var i = t.bitLength(), a = r.mont(t), o = new r(1).toRed(a); e || (e = Math.max(1, i / 48 | 0)); for (var s = t.subn(1), u = 0; !s.testn(u); u++); for (var c = t.shrn(u), f = s.toRed(a); e > 0; e--) { var l = this._randrange(new r(2), s); n && n(l); var h = l.toRed(a).redPow(c); if (0 !== h.cmp(o) && 0 !== h.cmp(f)) { for (var d = 1; d < u; d++) { if (0 === (h = h.redSqr()).cmp(o)) return !1; if (0 === h.cmp(f)) break } if (d === u) return !1 } } return !0 }, a.prototype.getDivisor = function(t, e) { var n = t.bitLength(), i = r.mont(t), a = new r(1).toRed(i); e || (e = Math.max(1, n / 48 | 0)); for (var o = t.subn(1), s = 0; !o.testn(s); s++); for (var u = t.shrn(s), c = o.toRed(i); e > 0; e--) { var f = this._randrange(new r(2), o), l = t.gcd(f); if (0 !== l.cmpn(1)) return l; var h = f.toRed(i).redPow(u); if (0 !== h.cmp(a) && 0 !== h.cmp(c)) { for (var d = 1; d < s; d++) { if (0 === (h = h.redSqr()).cmp(a)) return h.fromRed().subn(1).gcd(t); if (0 === h.cmp(c)) break } if (d === s) return (h = h.redSqr()).fromRed().subn(1).gcd(t) } } return !1 } }, function(t, e, n) { "use strict"; var r = e; function i(t) { return 1 === t.length ? "0" + t : t } function a(t) { for (var e = "", n = 0; n < t.length; n++) e += i(t[n].toString(16)); return e } r.toArray = function(t, e) { if (Array.isArray(t)) return t.slice(); if (!t) return []; var n = []; if ("string" != typeof t) { for (var r = 0; r < t.length; r++) n[r] = 0 | t[r]; return n } if ("hex" === e) { (t = t.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t = "0" + t); for (r = 0; r < t.length; r += 2) n.push(parseInt(t[r] + t[r + 1], 16)) } else for (r = 0; r < t.length; r++) { var i = t.charCodeAt(r), a = i >> 8, o = 255 & i; a ? n.push(a, o) : n.push(o) } return n }, r.zero2 = i, r.toHex = a, r.encode = function(t, e) { return "hex" === e ? a(t) : t } }, function(t, e, n) { "use strict"; var r = e; r.base = n(81), r.short = n(464), r.mont = n(465), r.edwards = n(466) }, function(t, e, n) { "use strict"; var r = n(21).rotr32; function i(t, e, n) { return t & e ^ ~t & n } function a(t, e, n) { return t & e ^ t & n ^ e & n } function o(t, e, n) { return t ^ e ^ n } e.ft_1 = function(t, e, n, r) { return 0 === t ? i(e, n, r) : 1 === t || 3 === t ? o(e, n, r) : 2 === t ? a(e, n, r) : void 0 }, e.ch32 = i, e.maj32 = a, e.p32 = o, e.s0_256 = function(t) { return r(t, 2) ^ r(t, 13) ^ r(t, 22) }, e.s1_256 = function(t) { return r(t, 6) ^ r(t, 11) ^ r(t, 25) }, e.g0_256 = function(t) { return r(t, 7) ^ r(t, 18) ^ t >>> 3 }, e.g1_256 = function(t) { return r(t, 17) ^ r(t, 19) ^ t >>> 10 } }, function(t, e, n) { "use strict"; var r = n(21), i = n(56), a = n(217), o = n(16), s = r.sum32, u = r.sum32_4, c = r.sum32_5, f = a.ch32, l = a.maj32, h = a.s0_256, d = a.s1_256, p = a.g0_256, g = a.g1_256, y = i.BlockHash, b = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; function v() { if (!(this instanceof v)) return new v; y.call(this), this.h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], this.k = b, this.W = new Array(64) } r.inherits(v, y), t.exports = v, v.blockSize = 512, v.outSize = 256, v.hmacStrength = 192, v.padLength = 64, v.prototype._update = function(t, e) { for (var n = this.W, r = 0; r < 16; r++) n[r] = t[e + r]; for (; r < n.length; r++) n[r] = u(g(n[r - 2]), n[r - 7], p(n[r - 15]), n[r - 16]); var i = this.h[0], a = this.h[1], y = this.h[2], b = this.h[3], v = this.h[4], m = this.h[5], _ = this.h[6], w = this.h[7]; for (o(this.k.length === n.length), r = 0; r < n.length; r++) { var x = c(w, d(v), f(v, m, _), this.k[r], n[r]), k = s(h(i), l(i, a, y)); w = _, _ = m, m = v, v = s(b, x), b = y, y = a, a = i, i = s(x, k) } this.h[0] = s(this.h[0], i), this.h[1] = s(this.h[1], a), this.h[2] = s(this.h[2], y), this.h[3] = s(this.h[3], b), this.h[4] = s(this.h[4], v), this.h[5] = s(this.h[5], m), this.h[6] = s(this.h[6], _), this.h[7] = s(this.h[7], w) }, v.prototype._digest = function(t) { return "hex" === t ? r.toHex32(this.h, "big") : r.split32(this.h, "big") } }, function(t, e, n) { "use strict"; var r = n(21), i = n(56), a = n(16), o = r.rotr64_hi, s = r.rotr64_lo, u = r.shr64_hi, c = r.shr64_lo, f = r.sum64, l = r.sum64_hi, h = r.sum64_lo, d = r.sum64_4_hi, p = r.sum64_4_lo, g = r.sum64_5_hi, y = r.sum64_5_lo, b = i.BlockHash, v = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591]; function m() { if (!(this instanceof m)) return new m; b.call(this), this.h = [1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, 1595750129, 1359893119, 2917565137, 2600822924, 725511199, 528734635, 4215389547, 1541459225, 327033209], this.k = v, this.W = new Array(160) } function _(t, e, n, r, i) { var a = t & n ^ ~t & i; return a < 0 && (a += 4294967296), a } function w(t, e, n, r, i, a) { var o = e & r ^ ~e & a; return o < 0 && (o += 4294967296), o } function x(t, e, n, r, i) { var a = t & n ^ t & i ^ n & i; return a < 0 && (a += 4294967296), a } function k(t, e, n, r, i, a) { var o = e & r ^ e & a ^ r & a; return o < 0 && (o += 4294967296), o } function E(t, e) { var n = o(t, e, 28) ^ o(e, t, 2) ^ o(e, t, 7); return n < 0 && (n += 4294967296), n } function A(t, e) { var n = s(t, e, 28) ^ s(e, t, 2) ^ s(e, t, 7); return n < 0 && (n += 4294967296), n } function S(t, e) { var n = o(t, e, 14) ^ o(t, e, 18) ^ o(e, t, 9); return n < 0 && (n += 4294967296), n } function M(t, e) { var n = s(t, e, 14) ^ s(t, e, 18) ^ s(e, t, 9); return n < 0 && (n += 4294967296), n } function T(t, e) { var n = o(t, e, 1) ^ o(t, e, 8) ^ u(t, e, 7); return n < 0 && (n += 4294967296), n } function D(t, e) { var n = s(t, e, 1) ^ s(t, e, 8) ^ c(t, e, 7); return n < 0 && (n += 4294967296), n } function C(t, e) { var n = o(t, e, 19) ^ o(e, t, 29) ^ u(t, e, 6); return n < 0 && (n += 4294967296), n } function N(t, e) { var n = s(t, e, 19) ^ s(e, t, 29) ^ c(t, e, 6); return n < 0 && (n += 4294967296), n } r.inherits(m, b), t.exports = m, m.blockSize = 1024, m.outSize = 512, m.hmacStrength = 192, m.padLength = 128, m.prototype._prepareBlock = function(t, e) { for (var n = this.W, r = 0; r < 32; r++) n[r] = t[e + r]; for (; r < n.length; r += 2) { var i = C(n[r - 4], n[r - 3]), a = N(n[r - 4], n[r - 3]), o = n[r - 14], s = n[r - 13], u = T(n[r - 30], n[r - 29]), c = D(n[r - 30], n[r - 29]), f = n[r - 32], l = n[r - 31]; n[r] = d(i, a, o, s, u, c, f, l), n[r + 1] = p(i, a, o, s, u, c, f, l) } }, m.prototype._update = function(t, e) { this._prepareBlock(t, e); var n = this.W, r = this.h[0], i = this.h[1], o = this.h[2], s = this.h[3], u = this.h[4], c = this.h[5], d = this.h[6], p = this.h[7], b = this.h[8], v = this.h[9], m = this.h[10], T = this.h[11], D = this.h[12], C = this.h[13], N = this.h[14], I = this.h[15]; a(this.k.length === n.length); for (var L = 0; L < n.length; L += 2) { var B = N, O = I, R = S(b, v), P = M(b, v), F = _(b, v, m, T, D), q = w(b, v, m, T, D, C), j = this.k[L], U = this.k[L + 1], z = n[L], Y = n[L + 1], V = g(B, O, R, P, F, q, j, U, z, Y), H = y(B, O, R, P, F, q, j, U, z, Y); B = E(r, i), O = A(r, i), R = x(r, i, o, s, u), P = k(r, i, o, s, u, c); var G = l(B, O, R, P), $ = h(B, O, R, P); N = D, I = C, D = m, C = T, m = b, T = v, b = l(d, p, V, H), v = h(p, p, V, H), d = u, p = c, u = o, c = s, o = r, s = i, r = l(V, H, G, $), i = h(V, H, G, $) } f(this.h, 0, r, i), f(this.h, 2, o, s), f(this.h, 4, u, c), f(this.h, 6, d, p), f(this.h, 8, b, v), f(this.h, 10, m, T), f(this.h, 12, D, C), f(this.h, 14, N, I) }, m.prototype._digest = function(t) { return "hex" === t ? r.toHex32(this.h, "big") : r.split32(this.h, "big") } }, function(t, e, n) { var r = n(2), i = n(58).Reporter, a = n(8).Buffer; function o(t, e) { i.call(this, e), a.isBuffer(t) ? (this.base = t, this.offset = 0, this.length = t.length) : this.error("Input not Buffer") } function s(t, e) { if (Array.isArray(t)) this.length = 0, this.value = t.map((function(t) { return t instanceof s || (t = new s(t, e)), this.length += t.length, t }), this); else if ("number" == typeof t) { if (!(0 <= t && t <= 255)) return e.error("non-byte EncoderBuffer value"); this.value = t, this.length = 1 } else if ("string" == typeof t) this.value = t, this.length = a.byteLength(t); else { if (!a.isBuffer(t)) return e.error("Unsupported type: " + typeof t); this.value = t, this.length = t.length } } r(o, i), e.DecoderBuffer = o, o.prototype.save = function() { return { offset: this.offset, reporter: i.prototype.save.call(this) } }, o.prototype.restore = function(t) { var e = new o(this.base); return e.offset = t.offset, e.length = this.offset, this.offset = t.offset, i.prototype.restore.call(this, t.reporter), e }, o.prototype.isEmpty = function() { return this.offset === this.length }, o.prototype.readUInt8 = function(t) { return this.offset + 1 <= this.length ? this.base.readUInt8(this.offset++, !0) : this.error(t || "DecoderBuffer overrun") }, o.prototype.skip = function(t, e) { if (!(this.offset + t <= this.length)) return this.error(e || "DecoderBuffer overrun"); var n = new o(this.base); return n._reporterState = this._reporterState, n.offset = this.offset, n.length = this.offset + t, this.offset += t, n }, o.prototype.raw = function(t) { return this.base.slice(t ? t.offset : this.offset, this.length) }, e.EncoderBuffer = s, s.prototype.join = function(t, e) { return t || (t = new a(this.length)), e || (e = 0), 0 === this.length ? t : (Array.isArray(this.value) ? this.value.forEach((function(n) { n.join(t, e), e += n.length })) : ("number" == typeof this.value ? t[e] = this.value : "string" == typeof this.value ? t.write(this.value, e) : a.isBuffer(this.value) && this.value.copy(t, e), e += this.length), t) } }, function(t, e, n) { var r = e; r._reverse = function(t) { var e = {}; return Object.keys(t).forEach((function(n) { (0 | n) == n && (n |= 0); var r = t[n]; e[r] = n })), e }, r.der = n(486) }, function(t, e, n) { var r = n(2), i = n(57), a = i.base, o = i.bignum, s = i.constants.der; function u(t) { this.enc = "der", this.name = t.name, this.entity = t, this.tree = new c, this.tree._init(t.body) } function c(t) { a.Node.call(this, "der", t) } function f(t, e) { var n = t.readUInt8(e); if (t.isError(n)) return n; var r = s.tagClass[n >> 6], i = 0 == (32 & n); if (31 == (31 & n)) { var a = n; for (n = 0; 128 == (128 & a);) { if (a = t.readUInt8(e), t.isError(a)) return a; n <<= 7, n |= 127 & a } } else n &= 31; return { cls: r, primitive: i, tag: n, tagStr: s.tag[n] } } function l(t, e, n) { var r = t.readUInt8(n); if (t.isError(r)) return r; if (!e && 128 === r) return null; if (0 == (128 & r)) return r; var i = 127 & r; if (i > 4) return t.error("length octect is too long"); r = 0; for (var a = 0; a < i; a++) { r <<= 8; var o = t.readUInt8(n); if (t.isError(o)) return o; r |= o } return r } t.exports = u, u.prototype.decode = function(t, e) { return t instanceof a.DecoderBuffer || (t = new a.DecoderBuffer(t, e)), this.tree._decode(t, e) }, r(c, a.Node), c.prototype._peekTag = function(t, e, n) { if (t.isEmpty()) return !1; var r = t.save(), i = f(t, 'Failed to peek tag: "' + e + '"'); return t.isError(i) ? i : (t.restore(r), i.tag === e || i.tagStr === e || i.tagStr + "of" === e || n) }, c.prototype._decodeTag = function(t, e, n) { var r = f(t, 'Failed to decode tag of "' + e + '"'); if (t.isError(r)) return r; var i = l(t, r.primitive, 'Failed to get length of "' + e + '"'); if (t.isError(i)) return i; if (!n && r.tag !== e && r.tagStr !== e && r.tagStr + "of" !== e) return t.error('Failed to match tag: "' + e + '"'); if (r.primitive || null !== i) return t.skip(i, 'Failed to match body of: "' + e + '"'); var a = t.save(), o = this._skipUntilEnd(t, 'Failed to skip indefinite length body: "' + this.tag + '"'); return t.isError(o) ? o : (i = t.offset - a.offset, t.restore(a), t.skip(i, 'Failed to match body of: "' + e + '"')) }, c.prototype._skipUntilEnd = function(t, e) { for (;;) { var n = f(t, e); if (t.isError(n)) return n; var r, i = l(t, n.primitive, e); if (t.isError(i)) return i; if (r = n.primitive || null !== i ? t.skip(i) : this._skipUntilEnd(t, e), t.isError(r)) return r; if ("end" === n.tagStr) break } }, c.prototype._decodeList = function(t, e, n, r) { for (var i = []; !t.isEmpty();) { var a = this._peekTag(t, "end"); if (t.isError(a)) return a; var o = n.decode(t, "der", r); if (t.isError(o) && a) break; i.push(o) } return i }, c.prototype._decodeStr = function(t, e) { if ("bitstr" === e) { var n = t.readUInt8(); return t.isError(n) ? n : { unused: n, data: t.raw() } } if ("bmpstr" === e) { var r = t.raw(); if (r.length % 2 == 1) return t.error("Decoding of string type: bmpstr length mismatch"); for (var i = "", a = 0; a < r.length / 2; a++) i += String.fromCharCode(r.readUInt16BE(2 * a)); return i } if ("numstr" === e) { var o = t.raw().toString("ascii"); return this._isNumstr(o) ? o : t.error("Decoding of string type: numstr unsupported characters") } if ("octstr" === e) return t.raw(); if ("objDesc" === e) return t.raw(); if ("printstr" === e) { var s = t.raw().toString("ascii"); return this._isPrintstr(s) ? s : t.error("Decoding of string type: printstr unsupported characters") } return /str$/.test(e) ? t.raw().toString() : t.error("Decoding of string type: " + e + " unsupported") }, c.prototype._decodeObjid = function(t, e, n) { for (var r, i = [], a = 0; !t.isEmpty();) { var o = t.readUInt8(); a <<= 7, a |= 127 & o, 0 == (128 & o) && (i.push(a), a = 0) } 128 & o && i.push(a); var s = i[0] / 40 | 0, u = i[0] % 40; if (r = n ? i : [s, u].concat(i.slice(1)), e) { var c = e[r.join(" ")]; void 0 === c && (c = e[r.join(".")]), void 0 !== c && (r = c) } return r }, c.prototype._decodeTime = function(t, e) { var n = t.raw().toString(); if ("gentime" === e) var r = 0 | n.slice(0, 4), i = 0 | n.slice(4, 6), a = 0 | n.slice(6, 8), o = 0 | n.slice(8, 10), s = 0 | n.slice(10, 12), u = 0 | n.slice(12, 14); else { if ("utctime" !== e) return t.error("Decoding " + e + " time is not supported yet"); r = 0 | n.slice(0, 2), i = 0 | n.slice(2, 4), a = 0 | n.slice(4, 6), o = 0 | n.slice(6, 8), s = 0 | n.slice(8, 10), u = 0 | n.slice(10, 12); r = r < 70 ? 2e3 + r : 1900 + r } return Date.UTC(r, i - 1, a, o, s, u, 0) }, c.prototype._decodeNull = function(t) { return null }, c.prototype._decodeBool = function(t) { var e = t.readUInt8(); return t.isError(e) ? e : 0 !== e }, c.prototype._decodeInt = function(t, e) { var n = t.raw(), r = new o(n); return e && (r = e[r.toString(10)] || r), r }, c.prototype._use = function(t, e) { return "function" == typeof t && (t = t(e)), t._getDecoder("der").tree } }, function(t, e, n) { var r = n(2), i = n(8).Buffer, a = n(57), o = a.base, s = a.constants.der; function u(t) { this.enc = "der", this.name = t.name, this.entity = t, this.tree = new c, this.tree._init(t.body) } function c(t) { o.Node.call(this, "der", t) } function f(t) { return t < 10 ? "0" + t : t } t.exports = u, u.prototype.encode = function(t, e) { return this.tree._encode(t, e).join() }, r(c, o.Node), c.prototype._encodeComposite = function(t, e, n, r) { var a, o = function(t, e, n, r) { var i; "seqof" === t ? t = "seq" : "setof" === t && (t = "set"); if (s.tagByName.hasOwnProperty(t)) i = s.tagByName[t]; else { if ("number" != typeof t || (0 | t) !== t) return r.error("Unknown tag: " + t); i = t } if (i >= 31) return r.error("Multi-octet tag encoding unsupported"); e || (i |= 32); return i |= s.tagClassByName[n || "universal"] << 6 }(t, e, n, this.reporter); if (r.length < 128) return (a = new i(2))[0] = o, a[1] = r.length, this._createEncoderBuffer([a, r]); for (var u = 1, c = r.length; c >= 256; c >>= 8) u++; (a = new i(2 + u))[0] = o, a[1] = 128 | u; c = 1 + u; for (var f = r.length; f > 0; c--, f >>= 8) a[c] = 255 & f; return this._createEncoderBuffer([a, r]) }, c.prototype._encodeStr = function(t, e) { if ("bitstr" === e) return this._createEncoderBuffer([0 | t.unused, t.data]); if ("bmpstr" === e) { for (var n = new i(2 * t.length), r = 0; r < t.length; r++) n.writeUInt16BE(t.charCodeAt(r), 2 * r); return this._createEncoderBuffer(n) } return "numstr" === e ? this._isNumstr(t) ? this._createEncoderBuffer(t) : this.reporter.error("Encoding of string type: numstr supports only digits and space") : "printstr" === e ? this._isPrintstr(t) ? this._createEncoderBuffer(t) : this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark") : /str$/.test(e) ? this._createEncoderBuffer(t) : "objDesc" === e ? this._createEncoderBuffer(t) : this.reporter.error("Encoding of string type: " + e + " unsupported") }, c.prototype._encodeObjid = function(t, e, n) { if ("string" == typeof t) { if (!e) return this.reporter.error("string objid given, but no values map found"); if (!e.hasOwnProperty(t)) return this.reporter.error("objid not found in values map"); t = e[t].split(/[\s\.]+/g); for (var r = 0; r < t.length; r++) t[r] |= 0 } else if (Array.isArray(t)) { t = t.slice(); for (r = 0; r < t.length; r++) t[r] |= 0 } if (!Array.isArray(t)) return this.reporter.error("objid() should be either array or string, got: " + JSON.stringify(t)); if (!n) { if (t[1] >= 40) return this.reporter.error("Second objid identifier OOB"); t.splice(0, 2, 40 * t[0] + t[1]) } var a = 0; for (r = 0; r < t.length; r++) { var o = t[r]; for (a++; o >= 128; o >>= 7) a++ } var s = new i(a), u = s.length - 1; for (r = t.length - 1; r >= 0; r--) { o = t[r]; for (s[u--] = 127 & o; (o >>= 7) > 0;) s[u--] = 128 | 127 & o } return this._createEncoderBuffer(s) }, c.prototype._encodeTime = function(t, e) { var n, r = new Date(t); return "gentime" === e ? n = [f(r.getFullYear()), f(r.getUTCMonth() + 1), f(r.getUTCDate()), f(r.getUTCHours()), f(r.getUTCMinutes()), f(r.getUTCSeconds()), "Z"].join("") : "utctime" === e ? n = [f(r.getFullYear() % 100), f(r.getUTCMonth() + 1), f(r.getUTCDate()), f(r.getUTCHours()), f(r.getUTCMinutes()), f(r.getUTCSeconds()), "Z"].join("") : this.reporter.error("Encoding " + e + " time is not supported yet"), this._encodeStr(n, "octstr") }, c.prototype._encodeNull = function() { return this._createEncoderBuffer("") }, c.prototype._encodeInt = function(t, e) { if ("string" == typeof t) { if (!e) return this.reporter.error("String int or enum given, but no values map"); if (!e.hasOwnProperty(t)) return this.reporter.error("Values map doesn't contain: " + JSON.stringify(t)); t = e[t] } if ("number" != typeof t && !i.isBuffer(t)) { var n = t.toArray(); !t.sign && 128 & n[0] && n.unshift(0), t = new i(n) } if (i.isBuffer(t)) { var r = t.length; 0 === t.length && r++; var a = new i(r); return t.copy(a), 0 === t.length && (a[0] = 0), this._createEncoderBuffer(a) } if (t < 128) return this._createEncoderBuffer(t); if (t < 256) return this._createEncoderBuffer([0, t]); r = 1; for (var o = t; o >= 256; o >>= 8) r++; for (o = (a = new Array(r)).length - 1; o >= 0; o--) a[o] = 255 & t, t >>= 8; return 128 & a[0] && a.unshift(0), this._createEncoderBuffer(new i(a)) }, c.prototype._encodeBool = function(t) { return this._createEncoderBuffer(t ? 255 : 0) }, c.prototype._use = function(t, e) { return "function" == typeof t && (t = t(e)), t._getEncoder("der").tree }, c.prototype._skipDefault = function(t, e, n) { var r, i = this._baseState; if (null === i.default) return !1; var a = t.join(); if (void 0 === i.defaultBuffer && (i.defaultBuffer = this._encodeValue(i.default, e, n).join()), a.length !== i.defaultBuffer.length) return !1; for (r = 0; r < a.length; r++) if (a[r] !== i.defaultBuffer[r]) return !1; return !0 } }, function(t) { t.exports = JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}') }, function(t, e, n) { var r = n(53), i = n(3).Buffer; function a(t) { var e = i.allocUnsafe(4); return e.writeUInt32BE(t, 0), e } t.exports = function(t, e) { for (var n, o = i.alloc(0), s = 0; o.length < e;) n = a(s++), o = i.concat([o, r("sha1").update(t).update(n).digest()]); return o.slice(0, e) } }, function(t, e) { t.exports = function(t, e) { for (var n = t.length, r = -1; ++r < n;) t[r] ^= e[r]; return t } }, function(t, e, n) { var r = n(5), i = n(3).Buffer; t.exports = function(t, e) { return i.from(t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed().toArray()) } }, function(t, e, n) { (function(t, n) { ! function(r) { var i = e, a = t && t.exports == i && t, o = "object" == typeof n && n; o.global !== o && o.window !== o || (r = o); var s = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, u = /[\x01-\x7F]/g, c = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g, f = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g, l = { "": "shy", "": "zwnj", "": "zwj", "": "lrm", "": "ic", "": "it", "": "af", "": "rlm", "": "ZeroWidthSpace", "": "NoBreak", "̑": "DownBreve", "⃛": "tdot", "⃜": "DotDot", "\t": "Tab", "\n": "NewLine", " ": "puncsp", " ": "MediumSpace", " ": "thinsp", " ": "hairsp", " ": "emsp13", " ": "ensp", " ": "emsp14", " ": "emsp", " ": "numsp", " ": "nbsp", " ": "ThickSpace", "‾": "oline", _: "lowbar", "‐": "dash", "–": "ndash", "—": "mdash", "―": "horbar", ",": "comma", ";": "semi", "⁏": "bsemi", ":": "colon", "⩴": "Colone", "!": "excl", "¡": "iexcl", "?": "quest", "¿": "iquest", ".": "period", "‥": "nldr", "…": "mldr", "·": "middot", "'": "apos", "‘": "lsquo", "’": "rsquo", "‚": "sbquo", "‹": "lsaquo", "›": "rsaquo", '"': "quot", "“": "ldquo", "”": "rdquo", "„": "bdquo", "«": "laquo", "»": "raquo", "(": "lpar", ")": "rpar", "[": "lsqb", "]": "rsqb", "{": "lcub", "}": "rcub", "⌈": "lceil", "⌉": "rceil", "⌊": "lfloor", "⌋": "rfloor", "⦅": "lopar", "⦆": "ropar", "⦋": "lbrke", "⦌": "rbrke", "⦍": "lbrkslu", "⦎": "rbrksld", "⦏": "lbrksld", "⦐": "rbrkslu", "⦑": "langd", "⦒": "rangd", "⦓": "lparlt", "⦔": "rpargt", "⦕": "gtlPar", "⦖": "ltrPar", "⟦": "lobrk", "⟧": "robrk", "⟨": "lang", "⟩": "rang", "⟪": "Lang", "⟫": "Rang", "⟬": "loang", "⟭": "roang", "❲": "lbbrk", "❳": "rbbrk", "‖": "Vert", "§": "sect", "¶": "para", "@": "commat", "*": "ast", "/": "sol", undefined: null, "&": "amp", "#": "num", "%": "percnt", "‰": "permil", "‱": "pertenk", "†": "dagger", "‡": "Dagger", "•": "bull", "⁃": "hybull", "′": "prime", "″": "Prime", "‴": "tprime", "⁗": "qprime", "‵": "bprime", "⁁": "caret", "`": "grave", "´": "acute", "˜": "tilde", "^": "Hat", "¯": "macr", "˘": "breve", "˙": "dot", "¨": "die", "˚": "ring", "˝": "dblac", "¸": "cedil", "˛": "ogon", "ˆ": "circ", "ˇ": "caron", "°": "deg", "©": "copy", "®": "reg", "℗": "copysr", "℘": "wp", "℞": "rx", "℧": "mho", "℩": "iiota", "←": "larr", "↚": "nlarr", "→": "rarr", "↛": "nrarr", "↑": "uarr", "↓": "darr", "↔": "harr", "↮": "nharr", "↕": "varr", "↖": "nwarr", "↗": "nearr", "↘": "searr", "↙": "swarr", "↝": "rarrw", "↝̸": "nrarrw", "↞": "Larr", "↟": "Uarr", "↠": "Rarr", "↡": "Darr", "↢": "larrtl", "↣": "rarrtl", "↤": "mapstoleft", "↥": "mapstoup", "↦": "map", "↧": "mapstodown", "↩": "larrhk", "↪": "rarrhk", "↫": "larrlp", "↬": "rarrlp", "↭": "harrw", "↰": "lsh", "↱": "rsh", "↲": "ldsh", "↳": "rdsh", "↵": "crarr", "↶": "cularr", "↷": "curarr", "↺": "olarr", "↻": "orarr", "↼": "lharu", "↽": "lhard", "↾": "uharr", "↿": "uharl", "⇀": "rharu", "⇁": "rhard", "⇂": "dharr", "⇃": "dharl", "⇄": "rlarr", "⇅": "udarr", "⇆": "lrarr", "⇇": "llarr", "⇈": "uuarr", "⇉": "rrarr", "⇊": "ddarr", "⇋": "lrhar", "⇌": "rlhar", "⇐": "lArr", "⇍": "nlArr", "⇑": "uArr", "⇒": "rArr", "⇏": "nrArr", "⇓": "dArr", "⇔": "iff", "⇎": "nhArr", "⇕": "vArr", "⇖": "nwArr", "⇗": "neArr", "⇘": "seArr", "⇙": "swArr", "⇚": "lAarr", "⇛": "rAarr", "⇝": "zigrarr", "⇤": "larrb", "⇥": "rarrb", "⇵": "duarr", "⇽": "loarr", "⇾": "roarr", "⇿": "hoarr", "∀": "forall", "∁": "comp", "∂": "part", "∂̸": "npart", "∃": "exist", "∄": "nexist", "∅": "empty", "∇": "Del", "∈": "in", "∉": "notin", "∋": "ni", "∌": "notni", "϶": "bepsi", "∏": "prod", "∐": "coprod", "∑": "sum", "+": "plus", "±": "pm", "÷": "div", "×": "times", "<": "lt", "≮": "nlt", "<⃒": "nvlt", "=": "equals", "≠": "ne", "=⃥": "bne", "⩵": "Equal", ">": "gt", "≯": "ngt", ">⃒": "nvgt", "¬": "not", "|": "vert", "¦": "brvbar", "−": "minus", "∓": "mp", "∔": "plusdo", "⁄": "frasl", "∖": "setmn", "∗": "lowast", "∘": "compfn", "√": "Sqrt", "∝": "prop", "∞": "infin", "∟": "angrt", "∠": "ang", "∠⃒": "nang", "∡": "angmsd", "∢": "angsph", "∣": "mid", "∤": "nmid", "∥": "par", "∦": "npar", "∧": "and", "∨": "or", "∩": "cap", "∩︀": "caps", "∪": "cup", "∪︀": "cups", "∫": "int", "∬": "Int", "∭": "tint", "⨌": "qint", "∮": "oint", "∯": "Conint", "∰": "Cconint", "∱": "cwint", "∲": "cwconint", "∳": "awconint", "∴": "there4", "∵": "becaus", "∶": "ratio", "∷": "Colon", "∸": "minusd", "∺": "mDDot", "∻": "homtht", "∼": "sim", "≁": "nsim", "∼⃒": "nvsim", "∽": "bsim", "∽̱": "race", "∾": "ac", "∾̳": "acE", "∿": "acd", "≀": "wr", "≂": "esim", "≂̸": "nesim", "≃": "sime", "≄": "nsime", "≅": "cong", "≇": "ncong", "≆": "simne", "≈": "ap", "≉": "nap", "≊": "ape", "≋": "apid", "≋̸": "napid", "≌": "bcong", "≍": "CupCap", "≭": "NotCupCap", "≍⃒": "nvap", "≎": "bump", "≎̸": "nbump", "≏": "bumpe", "≏̸": "nbumpe", "≐": "doteq", "≐̸": "nedot", "≑": "eDot", "≒": "efDot", "≓": "erDot", "≔": "colone", "≕": "ecolon", "≖": "ecir", "≗": "cire", "≙": "wedgeq", "≚": "veeeq", "≜": "trie", "≟": "equest", "≡": "equiv", "≢": "nequiv", "≡⃥": "bnequiv", "≤": "le", "≰": "nle", "≤⃒": "nvle", "≥": "ge", "≱": "nge", "≥⃒": "nvge", "≦": "lE", "≦̸": "nlE", "≧": "gE", "≧̸": "ngE", "≨︀": "lvnE", "≨": "lnE", "≩": "gnE", "≩︀": "gvnE", "≪": "ll", "≪̸": "nLtv", "≪⃒": "nLt", "≫": "gg", "≫̸": "nGtv", "≫⃒": "nGt", "≬": "twixt", "≲": "lsim", "≴": "nlsim", "≳": "gsim", "≵": "ngsim", "≶": "lg", "≸": "ntlg", "≷": "gl", "≹": "ntgl", "≺": "pr", "⊀": "npr", "≻": "sc", "⊁": "nsc", "≼": "prcue", "⋠": "nprcue", "≽": "sccue", "⋡": "nsccue", "≾": "prsim", "≿": "scsim", "≿̸": "NotSucceedsTilde", "⊂": "sub", "⊄": "nsub", "⊂⃒": "vnsub", "⊃": "sup", "⊅": "nsup", "⊃⃒": "vnsup", "⊆": "sube", "⊈": "nsube", "⊇": "supe", "⊉": "nsupe", "⊊︀": "vsubne", "⊊": "subne", "⊋︀": "vsupne", "⊋": "supne", "⊍": "cupdot", "⊎": "uplus", "⊏": "sqsub", "⊏̸": "NotSquareSubset", "⊐": "sqsup", "⊐̸": "NotSquareSuperset", "⊑": "sqsube", "⋢": "nsqsube", "⊒": "sqsupe", "⋣": "nsqsupe", "⊓": "sqcap", "⊓︀": "sqcaps", "⊔": "sqcup", "⊔︀": "sqcups", "⊕": "oplus", "⊖": "ominus", "⊗": "otimes", "⊘": "osol", "⊙": "odot", "⊚": "ocir", "⊛": "oast", "⊝": "odash", "⊞": "plusb", "⊟": "minusb", "⊠": "timesb", "⊡": "sdotb", "⊢": "vdash", "⊬": "nvdash", "⊣": "dashv", "⊤": "top", "⊥": "bot", "⊧": "models", "⊨": "vDash", "⊭": "nvDash", "⊩": "Vdash", "⊮": "nVdash", "⊪": "Vvdash", "⊫": "VDash", "⊯": "nVDash", "⊰": "prurel", "⊲": "vltri", "⋪": "nltri", "⊳": "vrtri", "⋫": "nrtri", "⊴": "ltrie", "⋬": "nltrie", "⊴⃒": "nvltrie", "⊵": "rtrie", "⋭": "nrtrie", "⊵⃒": "nvrtrie", "⊶": "origof", "⊷": "imof", "⊸": "mumap", "⊹": "hercon", "⊺": "intcal", "⊻": "veebar", "⊽": "barvee", "⊾": "angrtvb", "⊿": "lrtri", "⋀": "Wedge", "⋁": "Vee", "⋂": "xcap", "⋃": "xcup", "⋄": "diam", "⋅": "sdot", "⋆": "Star", "⋇": "divonx", "⋈": "bowtie", "⋉": "ltimes", "⋊": "rtimes", "⋋": "lthree", "⋌": "rthree", "⋍": "bsime", "⋎": "cuvee", "⋏": "cuwed", "⋐": "Sub", "⋑": "Sup", "⋒": "Cap", "⋓": "Cup", "⋔": "fork", "⋕": "epar", "⋖": "ltdot", "⋗": "gtdot", "⋘": "Ll", "⋘̸": "nLl", "⋙": "Gg", "⋙̸": "nGg", "⋚︀": "lesg", "⋚": "leg", "⋛": "gel", "⋛︀": "gesl", "⋞": "cuepr", "⋟": "cuesc", "⋦": "lnsim", "⋧": "gnsim", "⋨": "prnsim", "⋩": "scnsim", "⋮": "vellip", "⋯": "ctdot", "⋰": "utdot", "⋱": "dtdot", "⋲": "disin", "⋳": "isinsv", "⋴": "isins", "⋵": "isindot", "⋵̸": "notindot", "⋶": "notinvc", "⋷": "notinvb", "⋹": "isinE", "⋹̸": "notinE", "⋺": "nisd", "⋻": "xnis", "⋼": "nis", "⋽": "notnivc", "⋾": "notnivb", "⌅": "barwed", "⌆": "Barwed", "⌌": "drcrop", "⌍": "dlcrop", "⌎": "urcrop", "⌏": "ulcrop", "⌐": "bnot", "⌒": "profline", "⌓": "profsurf", "⌕": "telrec", "⌖": "target", "⌜": "ulcorn", "⌝": "urcorn", "⌞": "dlcorn", "⌟": "drcorn", "⌢": "frown", "⌣": "smile", "⌭": "cylcty", "⌮": "profalar", "⌶": "topbot", "⌽": "ovbar", "⌿": "solbar", "⍼": "angzarr", "⎰": "lmoust", "⎱": "rmoust", "⎴": "tbrk", "⎵": "bbrk", "⎶": "bbrktbrk", "⏜": "OverParenthesis", "⏝": "UnderParenthesis", "⏞": "OverBrace", "⏟": "UnderBrace", "⏢": "trpezium", "⏧": "elinters", "␣": "blank", "─": "boxh", "│": "boxv", "┌": "boxdr", "┐": "boxdl", "└": "boxur", "┘": "boxul", "├": "boxvr", "┤": "boxvl", "┬": "boxhd", "┴": "boxhu", "┼": "boxvh", "═": "boxH", "║": "boxV", "╒": "boxdR", "╓": "boxDr", "╔": "boxDR", "╕": "boxdL", "╖": "boxDl", "╗": "boxDL", "╘": "boxuR", "╙": "boxUr", "╚": "boxUR", "╛": "boxuL", "╜": "boxUl", "╝": "boxUL", "╞": "boxvR", "╟": "boxVr", "╠": "boxVR", "╡": "boxvL", "╢": "boxVl", "╣": "boxVL", "╤": "boxHd", "╥": "boxhD", "╦": "boxHD", "╧": "boxHu", "╨": "boxhU", "╩": "boxHU", "╪": "boxvH", "╫": "boxVh", "╬": "boxVH", "▀": "uhblk", "▄": "lhblk", "█": "block", "░": "blk14", "▒": "blk12", "▓": "blk34", "□": "squ", "▪": "squf", "▫": "EmptyVerySmallSquare", "▭": "rect", "▮": "marker", "▱": "fltns", "△": "xutri", "▴": "utrif", "▵": "utri", "▸": "rtrif", "▹": "rtri", "▽": "xdtri", "▾": "dtrif", "▿": "dtri", "◂": "ltrif", "◃": "ltri", "◊": "loz", "○": "cir", "◬": "tridot", "◯": "xcirc", "◸": "ultri", "◹": "urtri", "◺": "lltri", "◻": "EmptySmallSquare", "◼": "FilledSmallSquare", "★": "starf", "☆": "star", "☎": "phone", "♀": "female", "♂": "male", "♠": "spades", "♣": "clubs", "♥": "hearts", "♦": "diams", "♪": "sung", "✓": "check", "✗": "cross", "✠": "malt", "✶": "sext", "❘": "VerticalSeparator", "⟈": "bsolhsub", "⟉": "suphsol", "⟵": "xlarr", "⟶": "xrarr", "⟷": "xharr", "⟸": "xlArr", "⟹": "xrArr", "⟺": "xhArr", "⟼": "xmap", "⟿": "dzigrarr", "⤂": "nvlArr", "⤃": "nvrArr", "⤄": "nvHarr", "⤅": "Map", "⤌": "lbarr", "⤍": "rbarr", "⤎": "lBarr", "⤏": "rBarr", "⤐": "RBarr", "⤑": "DDotrahd", "⤒": "UpArrowBar", "⤓": "DownArrowBar", "⤖": "Rarrtl", "⤙": "latail", "⤚": "ratail", "⤛": "lAtail", "⤜": "rAtail", "⤝": "larrfs", "⤞": "rarrfs", "⤟": "larrbfs", "⤠": "rarrbfs", "⤣": "nwarhk", "⤤": "nearhk", "⤥": "searhk", "⤦": "swarhk", "⤧": "nwnear", "⤨": "toea", "⤩": "tosa", "⤪": "swnwar", "⤳": "rarrc", "⤳̸": "nrarrc", "⤵": "cudarrr", "⤶": "ldca", "⤷": "rdca", "⤸": "cudarrl", "⤹": "larrpl", "⤼": "curarrm", "⤽": "cularrp", "⥅": "rarrpl", "⥈": "harrcir", "⥉": "Uarrocir", "⥊": "lurdshar", "⥋": "ldrushar", "⥎": "LeftRightVector", "⥏": "RightUpDownVector", "⥐": "DownLeftRightVector", "⥑": "LeftUpDownVector", "⥒": "LeftVectorBar", "⥓": "RightVectorBar", "⥔": "RightUpVectorBar", "⥕": "RightDownVectorBar", "⥖": "DownLeftVectorBar", "⥗": "DownRightVectorBar", "⥘": "LeftUpVectorBar", "⥙": "LeftDownVectorBar", "⥚": "LeftTeeVector", "⥛": "RightTeeVector", "⥜": "RightUpTeeVector", "⥝": "RightDownTeeVector", "⥞": "DownLeftTeeVector", "⥟": "DownRightTeeVector", "⥠": "LeftUpTeeVector", "⥡": "LeftDownTeeVector", "⥢": "lHar", "⥣": "uHar", "⥤": "rHar", "⥥": "dHar", "⥦": "luruhar", "⥧": "ldrdhar", "⥨": "ruluhar", "⥩": "rdldhar", "⥪": "lharul", "⥫": "llhard", "⥬": "rharul", "⥭": "lrhard", "⥮": "udhar", "⥯": "duhar", "⥰": "RoundImplies", "⥱": "erarr", "⥲": "simrarr", "⥳": "larrsim", "⥴": "rarrsim", "⥵": "rarrap", "⥶": "ltlarr", "⥸": "gtrarr", "⥹": "subrarr", "⥻": "suplarr", "⥼": "lfisht", "⥽": "rfisht", "⥾": "ufisht", "⥿": "dfisht", "⦚": "vzigzag", "⦜": "vangrt", "⦝": "angrtvbd", "⦤": "ange", "⦥": "range", "⦦": "dwangle", "⦧": "uwangle", "⦨": "angmsdaa", "⦩": "angmsdab", "⦪": "angmsdac", "⦫": "angmsdad", "⦬": "angmsdae", "⦭": "angmsdaf", "⦮": "angmsdag", "⦯": "angmsdah", "⦰": "bemptyv", "⦱": "demptyv", "⦲": "cemptyv", "⦳": "raemptyv", "⦴": "laemptyv", "⦵": "ohbar", "⦶": "omid", "⦷": "opar", "⦹": "operp", "⦻": "olcross", "⦼": "odsold", "⦾": "olcir", "⦿": "ofcir", "⧀": "olt", "⧁": "ogt", "⧂": "cirscir", "⧃": "cirE", "⧄": "solb", "⧅": "bsolb", "⧉": "boxbox", "⧍": "trisb", "⧎": "rtriltri", "⧏": "LeftTriangleBar", "⧏̸": "NotLeftTriangleBar", "⧐": "RightTriangleBar", "⧐̸": "NotRightTriangleBar", "⧜": "iinfin", "⧝": "infintie", "⧞": "nvinfin", "⧣": "eparsl", "⧤": "smeparsl", "⧥": "eqvparsl", "⧫": "lozf", "⧴": "RuleDelayed", "⧶": "dsol", "⨀": "xodot", "⨁": "xoplus", "⨂": "xotime", "⨄": "xuplus", "⨆": "xsqcup", "⨍": "fpartint", "⨐": "cirfnint", "⨑": "awint", "⨒": "rppolint", "⨓": "scpolint", "⨔": "npolint", "⨕": "pointint", "⨖": "quatint", "⨗": "intlarhk", "⨢": "pluscir", "⨣": "plusacir", "⨤": "simplus", "⨥": "plusdu", "⨦": "plussim", "⨧": "plustwo", "⨩": "mcomma", "⨪": "minusdu", "⨭": "loplus", "⨮": "roplus", "⨯": "Cross", "⨰": "timesd", "⨱": "timesbar", "⨳": "smashp", "⨴": "lotimes", "⨵": "rotimes", "⨶": "otimesas", "⨷": "Otimes", "⨸": "odiv", "⨹": "triplus", "⨺": "triminus", "⨻": "tritime", "⨼": "iprod", "⨿": "amalg", "⩀": "capdot", "⩂": "ncup", "⩃": "ncap", "⩄": "capand", "⩅": "cupor", "⩆": "cupcap", "⩇": "capcup", "⩈": "cupbrcap", "⩉": "capbrcup", "⩊": "cupcup", "⩋": "capcap", "⩌": "ccups", "⩍": "ccaps", "⩐": "ccupssm", "⩓": "And", "⩔": "Or", "⩕": "andand", "⩖": "oror", "⩗": "orslope", "⩘": "andslope", "⩚": "andv", "⩛": "orv", "⩜": "andd", "⩝": "ord", "⩟": "wedbar", "⩦": "sdote", "⩪": "simdot", "⩭": "congdot", "⩭̸": "ncongdot", "⩮": "easter", "⩯": "apacir", "⩰": "apE", "⩰̸": "napE", "⩱": "eplus", "⩲": "pluse", "⩳": "Esim", "⩷": "eDDot", "⩸": "equivDD", "⩹": "ltcir", "⩺": "gtcir", "⩻": "ltquest", "⩼": "gtquest", "⩽": "les", "⩽̸": "nles", "⩾": "ges", "⩾̸": "nges", "⩿": "lesdot", "⪀": "gesdot", "⪁": "lesdoto", "⪂": "gesdoto", "⪃": "lesdotor", "⪄": "gesdotol", "⪅": "lap", "⪆": "gap", "⪇": "lne", "⪈": "gne", "⪉": "lnap", "⪊": "gnap", "⪋": "lEg", "⪌": "gEl", "⪍": "lsime", "⪎": "gsime", "⪏": "lsimg", "⪐": "gsiml", "⪑": "lgE", "⪒": "glE", "⪓": "lesges", "⪔": "gesles", "⪕": "els", "⪖": "egs", "⪗": "elsdot", "⪘": "egsdot", "⪙": "el", "⪚": "eg", "⪝": "siml", "⪞": "simg", "⪟": "simlE", "⪠": "simgE", "⪡": "LessLess", "⪡̸": "NotNestedLessLess", "⪢": "GreaterGreater", "⪢̸": "NotNestedGreaterGreater", "⪤": "glj", "⪥": "gla", "⪦": "ltcc", "⪧": "gtcc", "⪨": "lescc", "⪩": "gescc", "⪪": "smt", "⪫": "lat", "⪬": "smte", "⪬︀": "smtes", "⪭": "late", "⪭︀": "lates", "⪮": "bumpE", "⪯": "pre", "⪯̸": "npre", "⪰": "sce", "⪰̸": "nsce", "⪳": "prE", "⪴": "scE", "⪵": "prnE", "⪶": "scnE", "⪷": "prap", "⪸": "scap", "⪹": "prnap", "⪺": "scnap", "⪻": "Pr", "⪼": "Sc", "⪽": "subdot", "⪾": "supdot", "⪿": "subplus", "⫀": "supplus", "⫁": "submult", "⫂": "supmult", "⫃": "subedot", "⫄": "supedot", "⫅": "subE", "⫅̸": "nsubE", "⫆": "supE", "⫆̸": "nsupE", "⫇": "subsim", "⫈": "supsim", "⫋︀": "vsubnE", "⫋": "subnE", "⫌︀": "vsupnE", "⫌": "supnE", "⫏": "csub", "⫐": "csup", "⫑": "csube", "⫒": "csupe", "⫓": "subsup", "⫔": "supsub", "⫕": "subsub", "⫖": "supsup", "⫗": "suphsub", "⫘": "supdsub", "⫙": "forkv", "⫚": "topfork", "⫛": "mlcp", "⫤": "Dashv", "⫦": "Vdashl", "⫧": "Barv", "⫨": "vBar", "⫩": "vBarv", "⫫": "Vbar", "⫬": "Not", "⫭": "bNot", "⫮": "rnmid", "⫯": "cirmid", "⫰": "midcir", "⫱": "topcir", "⫲": "nhpar", "⫳": "parsim", "⫽": "parsl", "⫽⃥": "nparsl", "♭": "flat", "♮": "natur", "♯": "sharp", "¤": "curren", "¢": "cent", $: "dollar", "£": "pound", "¥": "yen", "€": "euro", "¹": "sup1", "½": "half", "⅓": "frac13", "¼": "frac14", "⅕": "frac15", "⅙": "frac16", "⅛": "frac18", "²": "sup2", "⅔": "frac23", "⅖": "frac25", "³": "sup3", "¾": "frac34", "⅗": "frac35", "⅜": "frac38", "⅘": "frac45", "⅚": "frac56", "⅝": "frac58", "⅞": "frac78", "𝒶": "ascr", "𝕒": "aopf", "𝔞": "afr", "𝔸": "Aopf", "𝔄": "Afr", "𝒜": "Ascr", "ª": "ordf", "á": "aacute", "Á": "Aacute", "à": "agrave", "À": "Agrave", "ă": "abreve", "Ă": "Abreve", "â": "acirc", "Â": "Acirc", "å": "aring", "Å": "angst", "ä": "auml", "Ä": "Auml", "ã": "atilde", "Ã": "Atilde", "ą": "aogon", "Ą": "Aogon", "ā": "amacr", "Ā": "Amacr", "æ": "aelig", "Æ": "AElig", "𝒷": "bscr", "𝕓": "bopf", "𝔟": "bfr", "𝔹": "Bopf", "ℬ": "Bscr", "𝔅": "Bfr", "𝔠": "cfr", "𝒸": "cscr", "𝕔": "copf", "ℭ": "Cfr", "𝒞": "Cscr", "ℂ": "Copf", "ć": "cacute", "Ć": "Cacute", "ĉ": "ccirc", "Ĉ": "Ccirc", "č": "ccaron", "Č": "Ccaron", "ċ": "cdot", "Ċ": "Cdot", "ç": "ccedil", "Ç": "Ccedil", "℅": "incare", "𝔡": "dfr", "ⅆ": "dd", "𝕕": "dopf", "𝒹": "dscr", "𝒟": "Dscr", "𝔇": "Dfr", "ⅅ": "DD", "𝔻": "Dopf", "ď": "dcaron", "Ď": "Dcaron", "đ": "dstrok", "Đ": "Dstrok", "ð": "eth", "Ð": "ETH", "ⅇ": "ee", "ℯ": "escr", "𝔢": "efr", "𝕖": "eopf", "ℰ": "Escr", "𝔈": "Efr", "𝔼": "Eopf", "é": "eacute", "É": "Eacute", "è": "egrave", "È": "Egrave", "ê": "ecirc", "Ê": "Ecirc", "ě": "ecaron", "Ě": "Ecaron", "ë": "euml", "Ë": "Euml", "ė": "edot", "Ė": "Edot", "ę": "eogon", "Ę": "Eogon", "ē": "emacr", "Ē": "Emacr", "𝔣": "ffr", "𝕗": "fopf", "𝒻": "fscr", "𝔉": "Ffr", "𝔽": "Fopf", "ℱ": "Fscr", "ff": "fflig", "ffi": "ffilig", "ffl": "ffllig", "fi": "filig", fj: "fjlig", "fl": "fllig", "ƒ": "fnof", "ℊ": "gscr", "𝕘": "gopf", "𝔤": "gfr", "𝒢": "Gscr", "𝔾": "Gopf", "𝔊": "Gfr", "ǵ": "gacute", "ğ": "gbreve", "Ğ": "Gbreve", "ĝ": "gcirc", "Ĝ": "Gcirc", "ġ": "gdot", "Ġ": "Gdot", "Ģ": "Gcedil", "𝔥": "hfr", "ℎ": "planckh", "𝒽": "hscr", "𝕙": "hopf", "ℋ": "Hscr", "ℌ": "Hfr", "ℍ": "Hopf", "ĥ": "hcirc", "Ĥ": "Hcirc", "ℏ": "hbar", "ħ": "hstrok", "Ħ": "Hstrok", "𝕚": "iopf", "𝔦": "ifr", "𝒾": "iscr", "ⅈ": "ii", "𝕀": "Iopf", "ℐ": "Iscr", "ℑ": "Im", "í": "iacute", "Í": "Iacute", "ì": "igrave", "Ì": "Igrave", "î": "icirc", "Î": "Icirc", "ï": "iuml", "Ï": "Iuml", "ĩ": "itilde", "Ĩ": "Itilde", "İ": "Idot", "į": "iogon", "Į": "Iogon", "ī": "imacr", "Ī": "Imacr", "ij": "ijlig", "IJ": "IJlig", "ı": "imath", "𝒿": "jscr", "𝕛": "jopf", "𝔧": "jfr", "𝒥": "Jscr", "𝔍": "Jfr", "𝕁": "Jopf", "ĵ": "jcirc", "Ĵ": "Jcirc", "ȷ": "jmath", "𝕜": "kopf", "𝓀": "kscr", "𝔨": "kfr", "𝒦": "Kscr", "𝕂": "Kopf", "𝔎": "Kfr", "ķ": "kcedil", "Ķ": "Kcedil", "𝔩": "lfr", "𝓁": "lscr", "ℓ": "ell", "𝕝": "lopf", "ℒ": "Lscr", "𝔏": "Lfr", "𝕃": "Lopf", "ĺ": "lacute", "Ĺ": "Lacute", "ľ": "lcaron", "Ľ": "Lcaron", "ļ": "lcedil", "Ļ": "Lcedil", "ł": "lstrok", "Ł": "Lstrok", "ŀ": "lmidot", "Ŀ": "Lmidot", "𝔪": "mfr", "𝕞": "mopf", "𝓂": "mscr", "𝔐": "Mfr", "𝕄": "Mopf", "ℳ": "Mscr", "𝔫": "nfr", "𝕟": "nopf", "𝓃": "nscr", "ℕ": "Nopf", "𝒩": "Nscr", "𝔑": "Nfr", "ń": "nacute", "Ń": "Nacute", "ň": "ncaron", "Ň": "Ncaron", "ñ": "ntilde", "Ñ": "Ntilde", "ņ": "ncedil", "Ņ": "Ncedil", "№": "numero", "ŋ": "eng", "Ŋ": "ENG", "𝕠": "oopf", "𝔬": "ofr", "ℴ": "oscr", "𝒪": "Oscr", "𝔒": "Ofr", "𝕆": "Oopf", "º": "ordm", "ó": "oacute", "Ó": "Oacute", "ò": "ograve", "Ò": "Ograve", "ô": "ocirc", "Ô": "Ocirc", "ö": "ouml", "Ö": "Ouml", "ő": "odblac", "Ő": "Odblac", "õ": "otilde", "Õ": "Otilde", "ø": "oslash", "Ø": "Oslash", "ō": "omacr", "Ō": "Omacr", "œ": "oelig", "Œ": "OElig", "𝔭": "pfr", "𝓅": "pscr", "𝕡": "popf", "ℙ": "Popf", "𝔓": "Pfr", "𝒫": "Pscr", "𝕢": "qopf", "𝔮": "qfr", "𝓆": "qscr", "𝒬": "Qscr", "𝔔": "Qfr", "ℚ": "Qopf", "ĸ": "kgreen", "𝔯": "rfr", "𝕣": "ropf", "𝓇": "rscr", "ℛ": "Rscr", "ℜ": "Re", "ℝ": "Ropf", "ŕ": "racute", "Ŕ": "Racute", "ř": "rcaron", "Ř": "Rcaron", "ŗ": "rcedil", "Ŗ": "Rcedil", "𝕤": "sopf", "𝓈": "sscr", "𝔰": "sfr", "𝕊": "Sopf", "𝔖": "Sfr", "𝒮": "Sscr", "Ⓢ": "oS", "ś": "sacute", "Ś": "Sacute", "ŝ": "scirc", "Ŝ": "Scirc", "š": "scaron", "Š": "Scaron", "ş": "scedil", "Ş": "Scedil", "ß": "szlig", "𝔱": "tfr", "𝓉": "tscr", "𝕥": "topf", "𝒯": "Tscr", "𝔗": "Tfr", "𝕋": "Topf", "ť": "tcaron", "Ť": "Tcaron", "ţ": "tcedil", "Ţ": "Tcedil", "™": "trade", "ŧ": "tstrok", "Ŧ": "Tstrok", "𝓊": "uscr", "𝕦": "uopf", "𝔲": "ufr", "𝕌": "Uopf", "𝔘": "Ufr", "𝒰": "Uscr", "ú": "uacute", "Ú": "Uacute", "ù": "ugrave", "Ù": "Ugrave", "ŭ": "ubreve", "Ŭ": "Ubreve", "û": "ucirc", "Û": "Ucirc", "ů": "uring", "Ů": "Uring", "ü": "uuml", "Ü": "Uuml", "ű": "udblac", "Ű": "Udblac", "ũ": "utilde", "Ũ": "Utilde", "ų": "uogon", "Ų": "Uogon", "ū": "umacr", "Ū": "Umacr", "𝔳": "vfr", "𝕧": "vopf", "𝓋": "vscr", "𝔙": "Vfr", "𝕍": "Vopf", "𝒱": "Vscr", "𝕨": "wopf", "𝓌": "wscr", "𝔴": "wfr", "𝒲": "Wscr", "𝕎": "Wopf", "𝔚": "Wfr", "ŵ": "wcirc", "Ŵ": "Wcirc", "𝔵": "xfr", "𝓍": "xscr", "𝕩": "xopf", "𝕏": "Xopf", "𝔛": "Xfr", "𝒳": "Xscr", "𝔶": "yfr", "𝓎": "yscr", "𝕪": "yopf", "𝒴": "Yscr", "𝔜": "Yfr", "𝕐": "Yopf", "ý": "yacute", "Ý": "Yacute", "ŷ": "ycirc", "Ŷ": "Ycirc", "ÿ": "yuml", "Ÿ": "Yuml", "𝓏": "zscr", "𝔷": "zfr", "𝕫": "zopf", "ℨ": "Zfr", "ℤ": "Zopf", "𝒵": "Zscr", "ź": "zacute", "Ź": "Zacute", "ž": "zcaron", "Ž": "Zcaron", "ż": "zdot", "Ż": "Zdot", "Ƶ": "imped", "þ": "thorn", "Þ": "THORN", "ʼn": "napos", "α": "alpha", "Α": "Alpha", "β": "beta", "Β": "Beta", "γ": "gamma", "Γ": "Gamma", "δ": "delta", "Δ": "Delta", "ε": "epsi", "ϵ": "epsiv", "Ε": "Epsilon", "ϝ": "gammad", "Ϝ": "Gammad", "ζ": "zeta", "Ζ": "Zeta", "η": "eta", "Η": "Eta", "θ": "theta", "ϑ": "thetav", "Θ": "Theta", "ι": "iota", "Ι": "Iota", "κ": "kappa", "ϰ": "kappav", "Κ": "Kappa", "λ": "lambda", "Λ": "Lambda", "μ": "mu", "µ": "micro", "Μ": "Mu", "ν": "nu", "Ν": "Nu", "ξ": "xi", "Ξ": "Xi", "ο": "omicron", "Ο": "Omicron", "π": "pi", "ϖ": "piv", "Π": "Pi", "ρ": "rho", "ϱ": "rhov", "Ρ": "Rho", "σ": "sigma", "Σ": "Sigma", "ς": "sigmaf", "τ": "tau", "Τ": "Tau", "υ": "upsi", "Υ": "Upsilon", "ϒ": "Upsi", "φ": "phi", "ϕ": "phiv", "Φ": "Phi", "χ": "chi", "Χ": "Chi", "ψ": "psi", "Ψ": "Psi", "ω": "omega", "Ω": "ohm", "а": "acy", "А": "Acy", "б": "bcy", "Б": "Bcy", "в": "vcy", "В": "Vcy", "г": "gcy", "Г": "Gcy", "ѓ": "gjcy", "Ѓ": "GJcy", "д": "dcy", "Д": "Dcy", "ђ": "djcy", "Ђ": "DJcy", "е": "iecy", "Е": "IEcy", "ё": "iocy", "Ё": "IOcy", "є": "jukcy", "Є": "Jukcy", "ж": "zhcy", "Ж": "ZHcy", "з": "zcy", "З": "Zcy", "ѕ": "dscy", "Ѕ": "DScy", "и": "icy", "И": "Icy", "і": "iukcy", "І": "Iukcy", "ї": "yicy", "Ї": "YIcy", "й": "jcy", "Й": "Jcy", "ј": "jsercy", "Ј": "Jsercy", "к": "kcy", "К": "Kcy", "ќ": "kjcy", "Ќ": "KJcy", "л": "lcy", "Л": "Lcy", "љ": "ljcy", "Љ": "LJcy", "м": "mcy", "М": "Mcy", "н": "ncy", "Н": "Ncy", "њ": "njcy", "Њ": "NJcy", "о": "ocy", "О": "Ocy", "п": "pcy", "П": "Pcy", "р": "rcy", "Р": "Rcy", "с": "scy", "С": "Scy", "т": "tcy", "Т": "Tcy", "ћ": "tshcy", "Ћ": "TSHcy", "у": "ucy", "У": "Ucy", "ў": "ubrcy", "Ў": "Ubrcy", "ф": "fcy", "Ф": "Fcy", "х": "khcy", "Х": "KHcy", "ц": "tscy", "Ц": "TScy", "ч": "chcy", "Ч": "CHcy", "џ": "dzcy", "Џ": "DZcy", "ш": "shcy", "Ш": "SHcy", "щ": "shchcy", "Щ": "SHCHcy", "ъ": "hardcy", "Ъ": "HARDcy", "ы": "ycy", "Ы": "Ycy", "ь": "softcy", "Ь": "SOFTcy", "э": "ecy", "Э": "Ecy", "ю": "yucy", "Ю": "YUcy", "я": "yacy", "Я": "YAcy", "ℵ": "aleph", "ℶ": "beth", "ℷ": "gimel", "ℸ": "daleth" }, h = /["&'<>`]/g, d = { '"': """, "&": "&", "'": "'", "<": "<", ">": ">", "`": "`" }, p = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/, g = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, y = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g, b = { aacute: "á", Aacute: "Á", abreve: "ă", Abreve: "Ă", ac: "∾", acd: "∿", acE: "∾̳", acirc: "â", Acirc: "Â", acute: "´", acy: "а", Acy: "А", aelig: "æ", AElig: "Æ", af: "", afr: "𝔞", Afr: "𝔄", agrave: "à", Agrave: "À", alefsym: "ℵ", aleph: "ℵ", alpha: "α", Alpha: "Α", amacr: "ā", Amacr: "Ā", amalg: "⨿", amp: "&", AMP: "&", and: "∧", And: "⩓", andand: "⩕", andd: "⩜", andslope: "⩘", andv: "⩚", ang: "∠", ange: "⦤", angle: "∠", angmsd: "∡", angmsdaa: "⦨", angmsdab: "⦩", angmsdac: "⦪", angmsdad: "⦫", angmsdae: "⦬", angmsdaf: "⦭", angmsdag: "⦮", angmsdah: "⦯", angrt: "∟", angrtvb: "⊾", angrtvbd: "⦝", angsph: "∢", angst: "Å", angzarr: "⍼", aogon: "ą", Aogon: "Ą", aopf: "𝕒", Aopf: "𝔸", ap: "≈", apacir: "⩯", ape: "≊", apE: "⩰", apid: "≋", apos: "'", ApplyFunction: "", approx: "≈", approxeq: "≊", aring: "å", Aring: "Å", ascr: "𝒶", Ascr: "𝒜", Assign: "≔", ast: "*", asymp: "≈", asympeq: "≍", atilde: "ã", Atilde: "Ã", auml: "ä", Auml: "Ä", awconint: "∳", awint: "⨑", backcong: "≌", backepsilon: "϶", backprime: "‵", backsim: "∽", backsimeq: "⋍", Backslash: "∖", Barv: "⫧", barvee: "⊽", barwed: "⌅", Barwed: "⌆", barwedge: "⌅", bbrk: "⎵", bbrktbrk: "⎶", bcong: "≌", bcy: "б", Bcy: "Б", bdquo: "„", becaus: "∵", because: "∵", Because: "∵", bemptyv: "⦰", bepsi: "϶", bernou: "ℬ", Bernoullis: "ℬ", beta: "β", Beta: "Β", beth: "ℶ", between: "≬", bfr: "𝔟", Bfr: "𝔅", bigcap: "⋂", bigcirc: "◯", bigcup: "⋃", bigodot: "⨀", bigoplus: "⨁", bigotimes: "⨂", bigsqcup: "⨆", bigstar: "★", bigtriangledown: "▽", bigtriangleup: "△", biguplus: "⨄", bigvee: "⋁", bigwedge: "⋀", bkarow: "⤍", blacklozenge: "⧫", blacksquare: "▪", blacktriangle: "▴", blacktriangledown: "▾", blacktriangleleft: "◂", blacktriangleright: "▸", blank: "␣", blk12: "▒", blk14: "░", blk34: "▓", block: "█", bne: "=⃥", bnequiv: "≡⃥", bnot: "⌐", bNot: "⫭", bopf: "𝕓", Bopf: "𝔹", bot: "⊥", bottom: "⊥", bowtie: "⋈", boxbox: "⧉", boxdl: "┐", boxdL: "╕", boxDl: "╖", boxDL: "╗", boxdr: "┌", boxdR: "╒", boxDr: "╓", boxDR: "╔", boxh: "─", boxH: "═", boxhd: "┬", boxhD: "╥", boxHd: "╤", boxHD: "╦", boxhu: "┴", boxhU: "╨", boxHu: "╧", boxHU: "╩", boxminus: "⊟", boxplus: "⊞", boxtimes: "⊠", boxul: "┘", boxuL: "╛", boxUl: "╜", boxUL: "╝", boxur: "└", boxuR: "╘", boxUr: "╙", boxUR: "╚", boxv: "│", boxV: "║", boxvh: "┼", boxvH: "╪", boxVh: "╫", boxVH: "╬", boxvl: "┤", boxvL: "╡", boxVl: "╢", boxVL: "╣", boxvr: "├", boxvR: "╞", boxVr: "╟", boxVR: "╠", bprime: "‵", breve: "˘", Breve: "˘", brvbar: "¦", bscr: "𝒷", Bscr: "ℬ", bsemi: "⁏", bsim: "∽", bsime: "⋍", bsol: "\\", bsolb: "⧅", bsolhsub: "⟈", bull: "•", bullet: "•", bump: "≎", bumpe: "≏", bumpE: "⪮", bumpeq: "≏", Bumpeq: "≎", cacute: "ć", Cacute: "Ć", cap: "∩", Cap: "⋒", capand: "⩄", capbrcup: "⩉", capcap: "⩋", capcup: "⩇", capdot: "⩀", CapitalDifferentialD: "ⅅ", caps: "∩︀", caret: "⁁", caron: "ˇ", Cayleys: "ℭ", ccaps: "⩍", ccaron: "č", Ccaron: "Č", ccedil: "ç", Ccedil: "Ç", ccirc: "ĉ", Ccirc: "Ĉ", Cconint: "∰", ccups: "⩌", ccupssm: "⩐", cdot: "ċ", Cdot: "Ċ", cedil: "¸", Cedilla: "¸", cemptyv: "⦲", cent: "¢", centerdot: "·", CenterDot: "·", cfr: "𝔠", Cfr: "ℭ", chcy: "ч", CHcy: "Ч", check: "✓", checkmark: "✓", chi: "χ", Chi: "Χ", cir: "○", circ: "ˆ", circeq: "≗", circlearrowleft: "↺", circlearrowright: "↻", circledast: "⊛", circledcirc: "⊚", circleddash: "⊝", CircleDot: "⊙", circledR: "®", circledS: "Ⓢ", CircleMinus: "⊖", CirclePlus: "⊕", CircleTimes: "⊗", cire: "≗", cirE: "⧃", cirfnint: "⨐", cirmid: "⫯", cirscir: "⧂", ClockwiseContourIntegral: "∲", CloseCurlyDoubleQuote: "”", CloseCurlyQuote: "’", clubs: "♣", clubsuit: "♣", colon: ":", Colon: "∷", colone: "≔", Colone: "⩴", coloneq: "≔", comma: ",", commat: "@", comp: "∁", compfn: "∘", complement: "∁", complexes: "ℂ", cong: "≅", congdot: "⩭", Congruent: "≡", conint: "∮", Conint: "∯", ContourIntegral: "∮", copf: "𝕔", Copf: "ℂ", coprod: "∐", Coproduct: "∐", copy: "©", COPY: "©", copysr: "℗", CounterClockwiseContourIntegral: "∳", crarr: "↵", cross: "✗", Cross: "⨯", cscr: "𝒸", Cscr: "𝒞", csub: "⫏", csube: "⫑", csup: "⫐", csupe: "⫒", ctdot: "⋯", cudarrl: "⤸", cudarrr: "⤵", cuepr: "⋞", cuesc: "⋟", cularr: "↶", cularrp: "⤽", cup: "∪", Cup: "⋓", cupbrcap: "⩈", cupcap: "⩆", CupCap: "≍", cupcup: "⩊", cupdot: "⊍", cupor: "⩅", cups: "∪︀", curarr: "↷", curarrm: "⤼", curlyeqprec: "⋞", curlyeqsucc: "⋟", curlyvee: "⋎", curlywedge: "⋏", curren: "¤", curvearrowleft: "↶", curvearrowright: "↷", cuvee: "⋎", cuwed: "⋏", cwconint: "∲", cwint: "∱", cylcty: "⌭", dagger: "†", Dagger: "‡", daleth: "ℸ", darr: "↓", dArr: "⇓", Darr: "↡", dash: "‐", dashv: "⊣", Dashv: "⫤", dbkarow: "⤏", dblac: "˝", dcaron: "ď", Dcaron: "Ď", dcy: "д", Dcy: "Д", dd: "ⅆ", DD: "ⅅ", ddagger: "‡", ddarr: "⇊", DDotrahd: "⤑", ddotseq: "⩷", deg: "°", Del: "∇", delta: "δ", Delta: "Δ", demptyv: "⦱", dfisht: "⥿", dfr: "𝔡", Dfr: "𝔇", dHar: "⥥", dharl: "⇃", dharr: "⇂", DiacriticalAcute: "´", DiacriticalDot: "˙", DiacriticalDoubleAcute: "˝", DiacriticalGrave: "`", DiacriticalTilde: "˜", diam: "⋄", diamond: "⋄", Diamond: "⋄", diamondsuit: "♦", diams: "♦", die: "¨", DifferentialD: "ⅆ", digamma: "ϝ", disin: "⋲", div: "÷", divide: "÷", divideontimes: "⋇", divonx: "⋇", djcy: "ђ", DJcy: "Ђ", dlcorn: "⌞", dlcrop: "⌍", dollar: "$", dopf: "𝕕", Dopf: "𝔻", dot: "˙", Dot: "¨", DotDot: "⃜", doteq: "≐", doteqdot: "≑", DotEqual: "≐", dotminus: "∸", dotplus: "∔", dotsquare: "⊡", doublebarwedge: "⌆", DoubleContourIntegral: "∯", DoubleDot: "¨", DoubleDownArrow: "⇓", DoubleLeftArrow: "⇐", DoubleLeftRightArrow: "⇔", DoubleLeftTee: "⫤", DoubleLongLeftArrow: "⟸", DoubleLongLeftRightArrow: "⟺", DoubleLongRightArrow: "⟹", DoubleRightArrow: "⇒", DoubleRightTee: "⊨", DoubleUpArrow: "⇑", DoubleUpDownArrow: "⇕", DoubleVerticalBar: "∥", downarrow: "↓", Downarrow: "⇓", DownArrow: "↓", DownArrowBar: "⤓", DownArrowUpArrow: "⇵", DownBreve: "̑", downdownarrows: "⇊", downharpoonleft: "⇃", downharpoonright: "⇂", DownLeftRightVector: "⥐", DownLeftTeeVector: "⥞", DownLeftVector: "↽", DownLeftVectorBar: "⥖", DownRightTeeVector: "⥟", DownRightVector: "⇁", DownRightVectorBar: "⥗", DownTee: "⊤", DownTeeArrow: "↧", drbkarow: "⤐", drcorn: "⌟", drcrop: "⌌", dscr: "𝒹", Dscr: "𝒟", dscy: "ѕ", DScy: "Ѕ", dsol: "⧶", dstrok: "đ", Dstrok: "Đ", dtdot: "⋱", dtri: "▿", dtrif: "▾", duarr: "⇵", duhar: "⥯", dwangle: "⦦", dzcy: "џ", DZcy: "Џ", dzigrarr: "⟿", eacute: "é", Eacute: "É", easter: "⩮", ecaron: "ě", Ecaron: "Ě", ecir: "≖", ecirc: "ê", Ecirc: "Ê", ecolon: "≕", ecy: "э", Ecy: "Э", eDDot: "⩷", edot: "ė", eDot: "≑", Edot: "Ė", ee: "ⅇ", efDot: "≒", efr: "𝔢", Efr: "𝔈", eg: "⪚", egrave: "è", Egrave: "È", egs: "⪖", egsdot: "⪘", el: "⪙", Element: "∈", elinters: "⏧", ell: "ℓ", els: "⪕", elsdot: "⪗", emacr: "ē", Emacr: "Ē", empty: "∅", emptyset: "∅", EmptySmallSquare: "◻", emptyv: "∅", EmptyVerySmallSquare: "▫", emsp: " ", emsp13: " ", emsp14: " ", eng: "ŋ", ENG: "Ŋ", ensp: " ", eogon: "ę", Eogon: "Ę", eopf: "𝕖", Eopf: "𝔼", epar: "⋕", eparsl: "⧣", eplus: "⩱", epsi: "ε", epsilon: "ε", Epsilon: "Ε", epsiv: "ϵ", eqcirc: "≖", eqcolon: "≕", eqsim: "≂", eqslantgtr: "⪖", eqslantless: "⪕", Equal: "⩵", equals: "=", EqualTilde: "≂", equest: "≟", Equilibrium: "⇌", equiv: "≡", equivDD: "⩸", eqvparsl: "⧥", erarr: "⥱", erDot: "≓", escr: "ℯ", Escr: "ℰ", esdot: "≐", esim: "≂", Esim: "⩳", eta: "η", Eta: "Η", eth: "ð", ETH: "Ð", euml: "ë", Euml: "Ë", euro: "€", excl: "!", exist: "∃", Exists: "∃", expectation: "ℰ", exponentiale: "ⅇ", ExponentialE: "ⅇ", fallingdotseq: "≒", fcy: "ф", Fcy: "Ф", female: "♀", ffilig: "ffi", fflig: "ff", ffllig: "ffl", ffr: "𝔣", Ffr: "𝔉", filig: "fi", FilledSmallSquare: "◼", FilledVerySmallSquare: "▪", fjlig: "fj", flat: "♭", fllig: "fl", fltns: "▱", fnof: "ƒ", fopf: "𝕗", Fopf: "𝔽", forall: "∀", ForAll: "∀", fork: "⋔", forkv: "⫙", Fouriertrf: "ℱ", fpartint: "⨍", frac12: "½", frac13: "⅓", frac14: "¼", frac15: "⅕", frac16: "⅙", frac18: "⅛", frac23: "⅔", frac25: "⅖", frac34: "¾", frac35: "⅗", frac38: "⅜", frac45: "⅘", frac56: "⅚", frac58: "⅝", frac78: "⅞", frasl: "⁄", frown: "⌢", fscr: "𝒻", Fscr: "ℱ", gacute: "ǵ", gamma: "γ", Gamma: "Γ", gammad: "ϝ", Gammad: "Ϝ", gap: "⪆", gbreve: "ğ", Gbreve: "Ğ", Gcedil: "Ģ", gcirc: "ĝ", Gcirc: "Ĝ", gcy: "г", Gcy: "Г", gdot: "ġ", Gdot: "Ġ", ge: "≥", gE: "≧", gel: "⋛", gEl: "⪌", geq: "≥", geqq: "≧", geqslant: "⩾", ges: "⩾", gescc: "⪩", gesdot: "⪀", gesdoto: "⪂", gesdotol: "⪄", gesl: "⋛︀", gesles: "⪔", gfr: "𝔤", Gfr: "𝔊", gg: "≫", Gg: "⋙", ggg: "⋙", gimel: "ℷ", gjcy: "ѓ", GJcy: "Ѓ", gl: "≷", gla: "⪥", glE: "⪒", glj: "⪤", gnap: "⪊", gnapprox: "⪊", gne: "⪈", gnE: "≩", gneq: "⪈", gneqq: "≩", gnsim: "⋧", gopf: "𝕘", Gopf: "𝔾", grave: "`", GreaterEqual: "≥", GreaterEqualLess: "⋛", GreaterFullEqual: "≧", GreaterGreater: "⪢", GreaterLess: "≷", GreaterSlantEqual: "⩾", GreaterTilde: "≳", gscr: "ℊ", Gscr: "𝒢", gsim: "≳", gsime: "⪎", gsiml: "⪐", gt: ">", Gt: "≫", GT: ">", gtcc: "⪧", gtcir: "⩺", gtdot: "⋗", gtlPar: "⦕", gtquest: "⩼", gtrapprox: "⪆", gtrarr: "⥸", gtrdot: "⋗", gtreqless: "⋛", gtreqqless: "⪌", gtrless: "≷", gtrsim: "≳", gvertneqq: "≩︀", gvnE: "≩︀", Hacek: "ˇ", hairsp: " ", half: "½", hamilt: "ℋ", hardcy: "ъ", HARDcy: "Ъ", harr: "↔", hArr: "⇔", harrcir: "⥈", harrw: "↭", Hat: "^", hbar: "ℏ", hcirc: "ĥ", Hcirc: "Ĥ", hearts: "♥", heartsuit: "♥", hellip: "…", hercon: "⊹", hfr: "𝔥", Hfr: "ℌ", HilbertSpace: "ℋ", hksearow: "⤥", hkswarow: "⤦", hoarr: "⇿", homtht: "∻", hookleftarrow: "↩", hookrightarrow: "↪", hopf: "𝕙", Hopf: "ℍ", horbar: "―", HorizontalLine: "─", hscr: "𝒽", Hscr: "ℋ", hslash: "ℏ", hstrok: "ħ", Hstrok: "Ħ", HumpDownHump: "≎", HumpEqual: "≏", hybull: "⁃", hyphen: "‐", iacute: "í", Iacute: "Í", ic: "", icirc: "î", Icirc: "Î", icy: "и", Icy: "И", Idot: "İ", iecy: "е", IEcy: "Е", iexcl: "¡", iff: "⇔", ifr: "𝔦", Ifr: "ℑ", igrave: "ì", Igrave: "Ì", ii: "ⅈ", iiiint: "⨌", iiint: "∭", iinfin: "⧜", iiota: "℩", ijlig: "ij", IJlig: "IJ", Im: "ℑ", imacr: "ī", Imacr: "Ī", image: "ℑ", ImaginaryI: "ⅈ", imagline: "ℐ", imagpart: "ℑ", imath: "ı", imof: "⊷", imped: "Ƶ", Implies: "⇒", in : "∈", incare: "℅", infin: "∞", infintie: "⧝", inodot: "ı", int: "∫", Int: "∬", intcal: "⊺", integers: "ℤ", Integral: "∫", intercal: "⊺", Intersection: "⋂", intlarhk: "⨗", intprod: "⨼", InvisibleComma: "", InvisibleTimes: "", iocy: "ё", IOcy: "Ё", iogon: "į", Iogon: "Į", iopf: "𝕚", Iopf: "𝕀", iota: "ι", Iota: "Ι", iprod: "⨼", iquest: "¿", iscr: "𝒾", Iscr: "ℐ", isin: "∈", isindot: "⋵", isinE: "⋹", isins: "⋴", isinsv: "⋳", isinv: "∈", it: "", itilde: "ĩ", Itilde: "Ĩ", iukcy: "і", Iukcy: "І", iuml: "ï", Iuml: "Ï", jcirc: "ĵ", Jcirc: "Ĵ", jcy: "й", Jcy: "Й", jfr: "𝔧", Jfr: "𝔍", jmath: "ȷ", jopf: "𝕛", Jopf: "𝕁", jscr: "𝒿", Jscr: "𝒥", jsercy: "ј", Jsercy: "Ј", jukcy: "є", Jukcy: "Є", kappa: "κ", Kappa: "Κ", kappav: "ϰ", kcedil: "ķ", Kcedil: "Ķ", kcy: "к", Kcy: "К", kfr: "𝔨", Kfr: "𝔎", kgreen: "ĸ", khcy: "х", KHcy: "Х", kjcy: "ќ", KJcy: "Ќ", kopf: "𝕜", Kopf: "𝕂", kscr: "𝓀", Kscr: "𝒦", lAarr: "⇚", lacute: "ĺ", Lacute: "Ĺ", laemptyv: "⦴", lagran: "ℒ", lambda: "λ", Lambda: "Λ", lang: "⟨", Lang: "⟪", langd: "⦑", langle: "⟨", lap: "⪅", Laplacetrf: "ℒ", laquo: "«", larr: "←", lArr: "⇐", Larr: "↞", larrb: "⇤", larrbfs: "⤟", larrfs: "⤝", larrhk: "↩", larrlp: "↫", larrpl: "⤹", larrsim: "⥳", larrtl: "↢", lat: "⪫", latail: "⤙", lAtail: "⤛", late: "⪭", lates: "⪭︀", lbarr: "⤌", lBarr: "⤎", lbbrk: "❲", lbrace: "{", lbrack: "[", lbrke: "⦋", lbrksld: "⦏", lbrkslu: "⦍", lcaron: "ľ", Lcaron: "Ľ", lcedil: "ļ", Lcedil: "Ļ", lceil: "⌈", lcub: "{", lcy: "л", Lcy: "Л", ldca: "⤶", ldquo: "“", ldquor: "„", ldrdhar: "⥧", ldrushar: "⥋", ldsh: "↲", le: "≤", lE: "≦", LeftAngleBracket: "⟨", leftarrow: "←", Leftarrow: "⇐", LeftArrow: "←", LeftArrowBar: "⇤", LeftArrowRightArrow: "⇆", leftarrowtail: "↢", LeftCeiling: "⌈", LeftDoubleBracket: "⟦", LeftDownTeeVector: "⥡", LeftDownVector: "⇃", LeftDownVectorBar: "⥙", LeftFloor: "⌊", leftharpoondown: "↽", leftharpoonup: "↼", leftleftarrows: "⇇", leftrightarrow: "↔", Leftrightarrow: "⇔", LeftRightArrow: "↔", leftrightarrows: "⇆", leftrightharpoons: "⇋", leftrightsquigarrow: "↭", LeftRightVector: "⥎", LeftTee: "⊣", LeftTeeArrow: "↤", LeftTeeVector: "⥚", leftthreetimes: "⋋", LeftTriangle: "⊲", LeftTriangleBar: "⧏", LeftTriangleEqual: "⊴", LeftUpDownVector: "⥑", LeftUpTeeVector: "⥠", LeftUpVector: "↿", LeftUpVectorBar: "⥘", LeftVector: "↼", LeftVectorBar: "⥒", leg: "⋚", lEg: "⪋", leq: "≤", leqq: "≦", leqslant: "⩽", les: "⩽", lescc: "⪨", lesdot: "⩿", lesdoto: "⪁", lesdotor: "⪃", lesg: "⋚︀", lesges: "⪓", lessapprox: "⪅", lessdot: "⋖", lesseqgtr: "⋚", lesseqqgtr: "⪋", LessEqualGreater: "⋚", LessFullEqual: "≦", LessGreater: "≶", lessgtr: "≶", LessLess: "⪡", lesssim: "≲", LessSlantEqual: "⩽", LessTilde: "≲", lfisht: "⥼", lfloor: "⌊", lfr: "𝔩", Lfr: "𝔏", lg: "≶", lgE: "⪑", lHar: "⥢", lhard: "↽", lharu: "↼", lharul: "⥪", lhblk: "▄", ljcy: "љ", LJcy: "Љ", ll: "≪", Ll: "⋘", llarr: "⇇", llcorner: "⌞", Lleftarrow: "⇚", llhard: "⥫", lltri: "◺", lmidot: "ŀ", Lmidot: "Ŀ", lmoust: "⎰", lmoustache: "⎰", lnap: "⪉", lnapprox: "⪉", lne: "⪇", lnE: "≨", lneq: "⪇", lneqq: "≨", lnsim: "⋦", loang: "⟬", loarr: "⇽", lobrk: "⟦", longleftarrow: "⟵", Longleftarrow: "⟸", LongLeftArrow: "⟵", longleftrightarrow: "⟷", Longleftrightarrow: "⟺", LongLeftRightArrow: "⟷", longmapsto: "⟼", longrightarrow: "⟶", Longrightarrow: "⟹", LongRightArrow: "⟶", looparrowleft: "↫", looparrowright: "↬", lopar: "⦅", lopf: "𝕝", Lopf: "𝕃", loplus: "⨭", lotimes: "⨴", lowast: "∗", lowbar: "_", LowerLeftArrow: "↙", LowerRightArrow: "↘", loz: "◊", lozenge: "◊", lozf: "⧫", lpar: "(", lparlt: "⦓", lrarr: "⇆", lrcorner: "⌟", lrhar: "⇋", lrhard: "⥭", lrm: "", lrtri: "⊿", lsaquo: "‹", lscr: "𝓁", Lscr: "ℒ", lsh: "↰", Lsh: "↰", lsim: "≲", lsime: "⪍", lsimg: "⪏", lsqb: "[", lsquo: "‘", lsquor: "‚", lstrok: "ł", Lstrok: "Ł", lt: "<", Lt: "≪", LT: "<", ltcc: "⪦", ltcir: "⩹", ltdot: "⋖", lthree: "⋋", ltimes: "⋉", ltlarr: "⥶", ltquest: "⩻", ltri: "◃", ltrie: "⊴", ltrif: "◂", ltrPar: "⦖", lurdshar: "⥊", luruhar: "⥦", lvertneqq: "≨︀", lvnE: "≨︀", macr: "¯", male: "♂", malt: "✠", maltese: "✠", map: "↦", Map: "⤅", mapsto: "↦", mapstodown: "↧", mapstoleft: "↤", mapstoup: "↥", marker: "▮", mcomma: "⨩", mcy: "м", Mcy: "М", mdash: "—", mDDot: "∺", measuredangle: "∡", MediumSpace: " ", Mellintrf: "ℳ", mfr: "𝔪", Mfr: "𝔐", mho: "℧", micro: "µ", mid: "∣", midast: "*", midcir: "⫰", middot: "·", minus: "−", minusb: "⊟", minusd: "∸", minusdu: "⨪", MinusPlus: "∓", mlcp: "⫛", mldr: "…", mnplus: "∓", models: "⊧", mopf: "𝕞", Mopf: "𝕄", mp: "∓", mscr: "𝓂", Mscr: "ℳ", mstpos: "∾", mu: "μ", Mu: "Μ", multimap: "⊸", mumap: "⊸", nabla: "∇", nacute: "ń", Nacute: "Ń", nang: "∠⃒", nap: "≉", napE: "⩰̸", napid: "≋̸", napos: "ʼn", napprox: "≉", natur: "♮", natural: "♮", naturals: "ℕ", nbsp: " ", nbump: "≎̸", nbumpe: "≏̸", ncap: "⩃", ncaron: "ň", Ncaron: "Ň", ncedil: "ņ", Ncedil: "Ņ", ncong: "≇", ncongdot: "⩭̸", ncup: "⩂", ncy: "н", Ncy: "Н", ndash: "–", ne: "≠", nearhk: "⤤", nearr: "↗", neArr: "⇗", nearrow: "↗", nedot: "≐̸", NegativeMediumSpace: "", NegativeThickSpace: "", NegativeThinSpace: "", NegativeVeryThinSpace: "", nequiv: "≢", nesear: "⤨", nesim: "≂̸", NestedGreaterGreater: "≫", NestedLessLess: "≪", NewLine: "\n", nexist: "∄", nexists: "∄", nfr: "𝔫", Nfr: "𝔑", nge: "≱", ngE: "≧̸", ngeq: "≱", ngeqq: "≧̸", ngeqslant: "⩾̸", nges: "⩾̸", nGg: "⋙̸", ngsim: "≵", ngt: "≯", nGt: "≫⃒", ngtr: "≯", nGtv: "≫̸", nharr: "↮", nhArr: "⇎", nhpar: "⫲", ni: "∋", nis: "⋼", nisd: "⋺", niv: "∋", njcy: "њ", NJcy: "Њ", nlarr: "↚", nlArr: "⇍", nldr: "‥", nle: "≰", nlE: "≦̸", nleftarrow: "↚", nLeftarrow: "⇍", nleftrightarrow: "↮", nLeftrightarrow: "⇎", nleq: "≰", nleqq: "≦̸", nleqslant: "⩽̸", nles: "⩽̸", nless: "≮", nLl: "⋘̸", nlsim: "≴", nlt: "≮", nLt: "≪⃒", nltri: "⋪", nltrie: "⋬", nLtv: "≪̸", nmid: "∤", NoBreak: "", NonBreakingSpace: " ", nopf: "𝕟", Nopf: "ℕ", not: "¬", Not: "⫬", NotCongruent: "≢", NotCupCap: "≭", NotDoubleVerticalBar: "∦", NotElement: "∉", NotEqual: "≠", NotEqualTilde: "≂̸", NotExists: "∄", NotGreater: "≯", NotGreaterEqual: "≱", NotGreaterFullEqual: "≧̸", NotGreaterGreater: "≫̸", NotGreaterLess: "≹", NotGreaterSlantEqual: "⩾̸", NotGreaterTilde: "≵", NotHumpDownHump: "≎̸", NotHumpEqual: "≏̸", notin: "∉", notindot: "⋵̸", notinE: "⋹̸", notinva: "∉", notinvb: "⋷", notinvc: "⋶", NotLeftTriangle: "⋪", NotLeftTriangleBar: "⧏̸", NotLeftTriangleEqual: "⋬", NotLess: "≮", NotLessEqual: "≰", NotLessGreater: "≸", NotLessLess: "≪̸", NotLessSlantEqual: "⩽̸", NotLessTilde: "≴", NotNestedGreaterGreater: "⪢̸", NotNestedLessLess: "⪡̸", notni: "∌", notniva: "∌", notnivb: "⋾", notnivc: "⋽", NotPrecedes: "⊀", NotPrecedesEqual: "⪯̸", NotPrecedesSlantEqual: "⋠", NotReverseElement: "∌", NotRightTriangle: "⋫", NotRightTriangleBar: "⧐̸", NotRightTriangleEqual: "⋭", NotSquareSubset: "⊏̸", NotSquareSubsetEqual: "⋢", NotSquareSuperset: "⊐̸", NotSquareSupersetEqual: "⋣", NotSubset: "⊂⃒", NotSubsetEqual: "⊈", NotSucceeds: "⊁", NotSucceedsEqual: "⪰̸", NotSucceedsSlantEqual: "⋡", NotSucceedsTilde: "≿̸", NotSuperset: "⊃⃒", NotSupersetEqual: "⊉", NotTilde: "≁", NotTildeEqual: "≄", NotTildeFullEqual: "≇", NotTildeTilde: "≉", NotVerticalBar: "∤", npar: "∦", nparallel: "∦", nparsl: "⫽⃥", npart: "∂̸", npolint: "⨔", npr: "⊀", nprcue: "⋠", npre: "⪯̸", nprec: "⊀", npreceq: "⪯̸", nrarr: "↛", nrArr: "⇏", nrarrc: "⤳̸", nrarrw: "↝̸", nrightarrow: "↛", nRightarrow: "⇏", nrtri: "⋫", nrtrie: "⋭", nsc: "⊁", nsccue: "⋡", nsce: "⪰̸", nscr: "𝓃", Nscr: "𝒩", nshortmid: "∤", nshortparallel: "∦", nsim: "≁", nsime: "≄", nsimeq: "≄", nsmid: "∤", nspar: "∦", nsqsube: "⋢", nsqsupe: "⋣", nsub: "⊄", nsube: "⊈", nsubE: "⫅̸", nsubset: "⊂⃒", nsubseteq: "⊈", nsubseteqq: "⫅̸", nsucc: "⊁", nsucceq: "⪰̸", nsup: "⊅", nsupe: "⊉", nsupE: "⫆̸", nsupset: "⊃⃒", nsupseteq: "⊉", nsupseteqq: "⫆̸", ntgl: "≹", ntilde: "ñ", Ntilde: "Ñ", ntlg: "≸", ntriangleleft: "⋪", ntrianglelefteq: "⋬", ntriangleright: "⋫", ntrianglerighteq: "⋭", nu: "ν", Nu: "Ν", num: "#", numero: "№", numsp: " ", nvap: "≍⃒", nvdash: "⊬", nvDash: "⊭", nVdash: "⊮", nVDash: "⊯", nvge: "≥⃒", nvgt: ">⃒", nvHarr: "⤄", nvinfin: "⧞", nvlArr: "⤂", nvle: "≤⃒", nvlt: "<⃒", nvltrie: "⊴⃒", nvrArr: "⤃", nvrtrie: "⊵⃒", nvsim: "∼⃒", nwarhk: "⤣", nwarr: "↖", nwArr: "⇖", nwarrow: "↖", nwnear: "⤧", oacute: "ó", Oacute: "Ó", oast: "⊛", ocir: "⊚", ocirc: "ô", Ocirc: "Ô", ocy: "о", Ocy: "О", odash: "⊝", odblac: "ő", Odblac: "Ő", odiv: "⨸", odot: "⊙", odsold: "⦼", oelig: "œ", OElig: "Œ", ofcir: "⦿", ofr: "𝔬", Ofr: "𝔒", ogon: "˛", ograve: "ò", Ograve: "Ò", ogt: "⧁", ohbar: "⦵", ohm: "Ω", oint: "∮", olarr: "↺", olcir: "⦾", olcross: "⦻", oline: "‾", olt: "⧀", omacr: "ō", Omacr: "Ō", omega: "ω", Omega: "Ω", omicron: "ο", Omicron: "Ο", omid: "⦶", ominus: "⊖", oopf: "𝕠", Oopf: "𝕆", opar: "⦷", OpenCurlyDoubleQuote: "“", OpenCurlyQuote: "‘", operp: "⦹", oplus: "⊕", or: "∨", Or: "⩔", orarr: "↻", ord: "⩝", order: "ℴ", orderof: "ℴ", ordf: "ª", ordm: "º", origof: "⊶", oror: "⩖", orslope: "⩗", orv: "⩛", oS: "Ⓢ", oscr: "ℴ", Oscr: "𝒪", oslash: "ø", Oslash: "Ø", osol: "⊘", otilde: "õ", Otilde: "Õ", otimes: "⊗", Otimes: "⨷", otimesas: "⨶", ouml: "ö", Ouml: "Ö", ovbar: "⌽", OverBar: "‾", OverBrace: "⏞", OverBracket: "⎴", OverParenthesis: "⏜", par: "∥", para: "¶", parallel: "∥", parsim: "⫳", parsl: "⫽", part: "∂", PartialD: "∂", pcy: "п", Pcy: "П", percnt: "%", period: ".", permil: "‰", perp: "⊥", pertenk: "‱", pfr: "𝔭", Pfr: "𝔓", phi: "φ", Phi: "Φ", phiv: "ϕ", phmmat: "ℳ", phone: "☎", pi: "π", Pi: "Π", pitchfork: "⋔", piv: "ϖ", planck: "ℏ", planckh: "ℎ", plankv: "ℏ", plus: "+", plusacir: "⨣", plusb: "⊞", pluscir: "⨢", plusdo: "∔", plusdu: "⨥", pluse: "⩲", PlusMinus: "±", plusmn: "±", plussim: "⨦", plustwo: "⨧", pm: "±", Poincareplane: "ℌ", pointint: "⨕", popf: "𝕡", Popf: "ℙ", pound: "£", pr: "≺", Pr: "⪻", prap: "⪷", prcue: "≼", pre: "⪯", prE: "⪳", prec: "≺", precapprox: "⪷", preccurlyeq: "≼", Precedes: "≺", PrecedesEqual: "⪯", PrecedesSlantEqual: "≼", PrecedesTilde: "≾", preceq: "⪯", precnapprox: "⪹", precneqq: "⪵", precnsim: "⋨", precsim: "≾", prime: "′", Prime: "″", primes: "ℙ", prnap: "⪹", prnE: "⪵", prnsim: "⋨", prod: "∏", Product: "∏", profalar: "⌮", profline: "⌒", profsurf: "⌓", prop: "∝", Proportion: "∷", Proportional: "∝", propto: "∝", prsim: "≾", prurel: "⊰", pscr: "𝓅", Pscr: "𝒫", psi: "ψ", Psi: "Ψ", puncsp: " ", qfr: "𝔮", Qfr: "𝔔", qint: "⨌", qopf: "𝕢", Qopf: "ℚ", qprime: "⁗", qscr: "𝓆", Qscr: "𝒬", quaternions: "ℍ", quatint: "⨖", quest: "?", questeq: "≟", quot: '"', QUOT: '"', rAarr: "⇛", race: "∽̱", racute: "ŕ", Racute: "Ŕ", radic: "√", raemptyv: "⦳", rang: "⟩", Rang: "⟫", rangd: "⦒", range: "⦥", rangle: "⟩", raquo: "»", rarr: "→", rArr: "⇒", Rarr: "↠", rarrap: "⥵", rarrb: "⇥", rarrbfs: "⤠", rarrc: "⤳", rarrfs: "⤞", rarrhk: "↪", rarrlp: "↬", rarrpl: "⥅", rarrsim: "⥴", rarrtl: "↣", Rarrtl: "⤖", rarrw: "↝", ratail: "⤚", rAtail: "⤜", ratio: "∶", rationals: "ℚ", rbarr: "⤍", rBarr: "⤏", RBarr: "⤐", rbbrk: "❳", rbrace: "}", rbrack: "]", rbrke: "⦌", rbrksld: "⦎", rbrkslu: "⦐", rcaron: "ř", Rcaron: "Ř", rcedil: "ŗ", Rcedil: "Ŗ", rceil: "⌉", rcub: "}", rcy: "р", Rcy: "Р", rdca: "⤷", rdldhar: "⥩", rdquo: "”", rdquor: "”", rdsh: "↳", Re: "ℜ", real: "ℜ", realine: "ℛ", realpart: "ℜ", reals: "ℝ", rect: "▭", reg: "®", REG: "®", ReverseElement: "∋", ReverseEquilibrium: "⇋", ReverseUpEquilibrium: "⥯", rfisht: "⥽", rfloor: "⌋", rfr: "𝔯", Rfr: "ℜ", rHar: "⥤", rhard: "⇁", rharu: "⇀", rharul: "⥬", rho: "ρ", Rho: "Ρ", rhov: "ϱ", RightAngleBracket: "⟩", rightarrow: "→", Rightarrow: "⇒", RightArrow: "→", RightArrowBar: "⇥", RightArrowLeftArrow: "⇄", rightarrowtail: "↣", RightCeiling: "⌉", RightDoubleBracket: "⟧", RightDownTeeVector: "⥝", RightDownVector: "⇂", RightDownVectorBar: "⥕", RightFloor: "⌋", rightharpoondown: "⇁", rightharpoonup: "⇀", rightleftarrows: "⇄", rightleftharpoons: "⇌", rightrightarrows: "⇉", rightsquigarrow: "↝", RightTee: "⊢", RightTeeArrow: "↦", RightTeeVector: "⥛", rightthreetimes: "⋌", RightTriangle: "⊳", RightTriangleBar: "⧐", RightTriangleEqual: "⊵", RightUpDownVector: "⥏", RightUpTeeVector: "⥜", RightUpVector: "↾", RightUpVectorBar: "⥔", RightVector: "⇀", RightVectorBar: "⥓", ring: "˚", risingdotseq: "≓", rlarr: "⇄", rlhar: "⇌", rlm: "", rmoust: "⎱", rmoustache: "⎱", rnmid: "⫮", roang: "⟭", roarr: "⇾", robrk: "⟧", ropar: "⦆", ropf: "𝕣", Ropf: "ℝ", roplus: "⨮", rotimes: "⨵", RoundImplies: "⥰", rpar: ")", rpargt: "⦔", rppolint: "⨒", rrarr: "⇉", Rrightarrow: "⇛", rsaquo: "›", rscr: "𝓇", Rscr: "ℛ", rsh: "↱", Rsh: "↱", rsqb: "]", rsquo: "’", rsquor: "’", rthree: "⋌", rtimes: "⋊", rtri: "▹", rtrie: "⊵", rtrif: "▸", rtriltri: "⧎", RuleDelayed: "⧴", ruluhar: "⥨", rx: "℞", sacute: "ś", Sacute: "Ś", sbquo: "‚", sc: "≻", Sc: "⪼", scap: "⪸", scaron: "š", Scaron: "Š", sccue: "≽", sce: "⪰", scE: "⪴", scedil: "ş", Scedil: "Ş", scirc: "ŝ", Scirc: "Ŝ", scnap: "⪺", scnE: "⪶", scnsim: "⋩", scpolint: "⨓", scsim: "≿", scy: "с", Scy: "С", sdot: "⋅", sdotb: "⊡", sdote: "⩦", searhk: "⤥", searr: "↘", seArr: "⇘", searrow: "↘", sect: "§", semi: ";", seswar: "⤩", setminus: "∖", setmn: "∖", sext: "✶", sfr: "𝔰", Sfr: "𝔖", sfrown: "⌢", sharp: "♯", shchcy: "щ", SHCHcy: "Щ", shcy: "ш", SHcy: "Ш", ShortDownArrow: "↓", ShortLeftArrow: "←", shortmid: "∣", shortparallel: "∥", ShortRightArrow: "→", ShortUpArrow: "↑", shy: "", sigma: "σ", Sigma: "Σ", sigmaf: "ς", sigmav: "ς", sim: "∼", simdot: "⩪", sime: "≃", simeq: "≃", simg: "⪞", simgE: "⪠", siml: "⪝", simlE: "⪟", simne: "≆", simplus: "⨤", simrarr: "⥲", slarr: "←", SmallCircle: "∘", smallsetminus: "∖", smashp: "⨳", smeparsl: "⧤", smid: "∣", smile: "⌣", smt: "⪪", smte: "⪬", smtes: "⪬︀", softcy: "ь", SOFTcy: "Ь", sol: "/", solb: "⧄", solbar: "⌿", sopf: "𝕤", Sopf: "𝕊", spades: "♠", spadesuit: "♠", spar: "∥", sqcap: "⊓", sqcaps: "⊓︀", sqcup: "⊔", sqcups: "⊔︀", Sqrt: "√", sqsub: "⊏", sqsube: "⊑", sqsubset: "⊏", sqsubseteq: "⊑", sqsup: "⊐", sqsupe: "⊒", sqsupset: "⊐", sqsupseteq: "⊒", squ: "□", square: "□", Square: "□", SquareIntersection: "⊓", SquareSubset: "⊏", SquareSubsetEqual: "⊑", SquareSuperset: "⊐", SquareSupersetEqual: "⊒", SquareUnion: "⊔", squarf: "▪", squf: "▪", srarr: "→", sscr: "𝓈", Sscr: "𝒮", ssetmn: "∖", ssmile: "⌣", sstarf: "⋆", star: "☆", Star: "⋆", starf: "★", straightepsilon: "ϵ", straightphi: "ϕ", strns: "¯", sub: "⊂", Sub: "⋐", subdot: "⪽", sube: "⊆", subE: "⫅", subedot: "⫃", submult: "⫁", subne: "⊊", subnE: "⫋", subplus: "⪿", subrarr: "⥹", subset: "⊂", Subset: "⋐", subseteq: "⊆", subseteqq: "⫅", SubsetEqual: "⊆", subsetneq: "⊊", subsetneqq: "⫋", subsim: "⫇", subsub: "⫕", subsup: "⫓", succ: "≻", succapprox: "⪸", succcurlyeq: "≽", Succeeds: "≻", SucceedsEqual: "⪰", SucceedsSlantEqual: "≽", SucceedsTilde: "≿", succeq: "⪰", succnapprox: "⪺", succneqq: "⪶", succnsim: "⋩", succsim: "≿", SuchThat: "∋", sum: "∑", Sum: "∑", sung: "♪", sup: "⊃", Sup: "⋑", sup1: "¹", sup2: "²", sup3: "³", supdot: "⪾", supdsub: "⫘", supe: "⊇", supE: "⫆", supedot: "⫄", Superset: "⊃", SupersetEqual: "⊇", suphsol: "⟉", suphsub: "⫗", suplarr: "⥻", supmult: "⫂", supne: "⊋", supnE: "⫌", supplus: "⫀", supset: "⊃", Supset: "⋑", supseteq: "⊇", supseteqq: "⫆", supsetneq: "⊋", supsetneqq: "⫌", supsim: "⫈", supsub: "⫔", supsup: "⫖", swarhk: "⤦", swarr: "↙", swArr: "⇙", swarrow: "↙", swnwar: "⤪", szlig: "ß", Tab: "\t", target: "⌖", tau: "τ", Tau: "Τ", tbrk: "⎴", tcaron: "ť", Tcaron: "Ť", tcedil: "ţ", Tcedil: "Ţ", tcy: "т", Tcy: "Т", tdot: "⃛", telrec: "⌕", tfr: "𝔱", Tfr: "𝔗", there4: "∴", therefore: "∴", Therefore: "∴", theta: "θ", Theta: "Θ", thetasym: "ϑ", thetav: "ϑ", thickapprox: "≈", thicksim: "∼", ThickSpace: " ", thinsp: " ", ThinSpace: " ", thkap: "≈", thksim: "∼", thorn: "þ", THORN: "Þ", tilde: "˜", Tilde: "∼", TildeEqual: "≃", TildeFullEqual: "≅", TildeTilde: "≈", times: "×", timesb: "⊠", timesbar: "⨱", timesd: "⨰", tint: "∭", toea: "⤨", top: "⊤", topbot: "⌶", topcir: "⫱", topf: "𝕥", Topf: "𝕋", topfork: "⫚", tosa: "⤩", tprime: "‴", trade: "™", TRADE: "™", triangle: "▵", triangledown: "▿", triangleleft: "◃", trianglelefteq: "⊴", triangleq: "≜", triangleright: "▹", trianglerighteq: "⊵", tridot: "◬", trie: "≜", triminus: "⨺", TripleDot: "⃛", triplus: "⨹", trisb: "⧍", tritime: "⨻", trpezium: "⏢", tscr: "𝓉", Tscr: "𝒯", tscy: "ц", TScy: "Ц", tshcy: "ћ", TSHcy: "Ћ", tstrok: "ŧ", Tstrok: "Ŧ", twixt: "≬", twoheadleftarrow: "↞", twoheadrightarrow: "↠", uacute: "ú", Uacute: "Ú", uarr: "↑", uArr: "⇑", Uarr: "↟", Uarrocir: "⥉", ubrcy: "ў", Ubrcy: "Ў", ubreve: "ŭ", Ubreve: "Ŭ", ucirc: "û", Ucirc: "Û", ucy: "у", Ucy: "У", udarr: "⇅", udblac: "ű", Udblac: "Ű", udhar: "⥮", ufisht: "⥾", ufr: "𝔲", Ufr: "𝔘", ugrave: "ù", Ugrave: "Ù", uHar: "⥣", uharl: "↿", uharr: "↾", uhblk: "▀", ulcorn: "⌜", ulcorner: "⌜", ulcrop: "⌏", ultri: "◸", umacr: "ū", Umacr: "Ū", uml: "¨", UnderBar: "_", UnderBrace: "⏟", UnderBracket: "⎵", UnderParenthesis: "⏝", Union: "⋃", UnionPlus: "⊎", uogon: "ų", Uogon: "Ų", uopf: "𝕦", Uopf: "𝕌", uparrow: "↑", Uparrow: "⇑", UpArrow: "↑", UpArrowBar: "⤒", UpArrowDownArrow: "⇅", updownarrow: "↕", Updownarrow: "⇕", UpDownArrow: "↕", UpEquilibrium: "⥮", upharpoonleft: "↿", upharpoonright: "↾", uplus: "⊎", UpperLeftArrow: "↖", UpperRightArrow: "↗", upsi: "υ", Upsi: "ϒ", upsih: "ϒ", upsilon: "υ", Upsilon: "Υ", UpTee: "⊥", UpTeeArrow: "↥", upuparrows: "⇈", urcorn: "⌝", urcorner: "⌝", urcrop: "⌎", uring: "ů", Uring: "Ů", urtri: "◹", uscr: "𝓊", Uscr: "𝒰", utdot: "⋰", utilde: "ũ", Utilde: "Ũ", utri: "▵", utrif: "▴", uuarr: "⇈", uuml: "ü", Uuml: "Ü", uwangle: "⦧", vangrt: "⦜", varepsilon: "ϵ", varkappa: "ϰ", varnothing: "∅", varphi: "ϕ", varpi: "ϖ", varpropto: "∝", varr: "↕", vArr: "⇕", varrho: "ϱ", varsigma: "ς", varsubsetneq: "⊊︀", varsubsetneqq: "⫋︀", varsupsetneq: "⊋︀", varsupsetneqq: "⫌︀", vartheta: "ϑ", vartriangleleft: "⊲", vartriangleright: "⊳", vBar: "⫨", Vbar: "⫫", vBarv: "⫩", vcy: "в", Vcy: "В", vdash: "⊢", vDash: "⊨", Vdash: "⊩", VDash: "⊫", Vdashl: "⫦", vee: "∨", Vee: "⋁", veebar: "⊻", veeeq: "≚", vellip: "⋮", verbar: "|", Verbar: "‖", vert: "|", Vert: "‖", VerticalBar: "∣", VerticalLine: "|", VerticalSeparator: "❘", VerticalTilde: "≀", VeryThinSpace: " ", vfr: "𝔳", Vfr: "𝔙", vltri: "⊲", vnsub: "⊂⃒", vnsup: "⊃⃒", vopf: "𝕧", Vopf: "𝕍", vprop: "∝", vrtri: "⊳", vscr: "𝓋", Vscr: "𝒱", vsubne: "⊊︀", vsubnE: "⫋︀", vsupne: "⊋︀", vsupnE: "⫌︀", Vvdash: "⊪", vzigzag: "⦚", wcirc: "ŵ", Wcirc: "Ŵ", wedbar: "⩟", wedge: "∧", Wedge: "⋀", wedgeq: "≙", weierp: "℘", wfr: "𝔴", Wfr: "𝔚", wopf: "𝕨", Wopf: "𝕎", wp: "℘", wr: "≀", wreath: "≀", wscr: "𝓌", Wscr: "𝒲", xcap: "⋂", xcirc: "◯", xcup: "⋃", xdtri: "▽", xfr: "𝔵", Xfr: "𝔛", xharr: "⟷", xhArr: "⟺", xi: "ξ", Xi: "Ξ", xlarr: "⟵", xlArr: "⟸", xmap: "⟼", xnis: "⋻", xodot: "⨀", xopf: "𝕩", Xopf: "𝕏", xoplus: "⨁", xotime: "⨂", xrarr: "⟶", xrArr: "⟹", xscr: "𝓍", Xscr: "𝒳", xsqcup: "⨆", xuplus: "⨄", xutri: "△", xvee: "⋁", xwedge: "⋀", yacute: "ý", Yacute: "Ý", yacy: "я", YAcy: "Я", ycirc: "ŷ", Ycirc: "Ŷ", ycy: "ы", Ycy: "Ы", yen: "¥", yfr: "𝔶", Yfr: "𝔜", yicy: "ї", YIcy: "Ї", yopf: "𝕪", Yopf: "𝕐", yscr: "𝓎", Yscr: "𝒴", yucy: "ю", YUcy: "Ю", yuml: "ÿ", Yuml: "Ÿ", zacute: "ź", Zacute: "Ź", zcaron: "ž", Zcaron: "Ž", zcy: "з", Zcy: "З", zdot: "ż", Zdot: "Ż", zeetrf: "ℨ", ZeroWidthSpace: "", zeta: "ζ", Zeta: "Ζ", zfr: "𝔷", Zfr: "ℨ", zhcy: "ж", ZHcy: "Ж", zigrarr: "⇝", zopf: "𝕫", Zopf: "ℤ", zscr: "𝓏", Zscr: "𝒵", zwj: "", zwnj: "" }, v = { aacute: "á", Aacute: "Á", acirc: "â", Acirc: "Â", acute: "´", aelig: "æ", AElig: "Æ", agrave: "à", Agrave: "À", amp: "&", AMP: "&", aring: "å", Aring: "Å", atilde: "ã", Atilde: "Ã", auml: "ä", Auml: "Ä", brvbar: "¦", ccedil: "ç", Ccedil: "Ç", cedil: "¸", cent: "¢", copy: "©", COPY: "©", curren: "¤", deg: "°", divide: "÷", eacute: "é", Eacute: "É", ecirc: "ê", Ecirc: "Ê", egrave: "è", Egrave: "È", eth: "ð", ETH: "Ð", euml: "ë", Euml: "Ë", frac12: "½", frac14: "¼", frac34: "¾", gt: ">", GT: ">", iacute: "í", Iacute: "Í", icirc: "î", Icirc: "Î", iexcl: "¡", igrave: "ì", Igrave: "Ì", iquest: "¿", iuml: "ï", Iuml: "Ï", laquo: "«", lt: "<", LT: "<", macr: "¯", micro: "µ", middot: "·", nbsp: " ", not: "¬", ntilde: "ñ", Ntilde: "Ñ", oacute: "ó", Oacute: "Ó", ocirc: "ô", Ocirc: "Ô", ograve: "ò", Ograve: "Ò", ordf: "ª", ordm: "º", oslash: "ø", Oslash: "Ø", otilde: "õ", Otilde: "Õ", ouml: "ö", Ouml: "Ö", para: "¶", plusmn: "±", pound: "£", quot: '"', QUOT: '"', raquo: "»", reg: "®", REG: "®", sect: "§", shy: "", sup1: "¹", sup2: "²", sup3: "³", szlig: "ß", thorn: "þ", THORN: "Þ", times: "×", uacute: "ú", Uacute: "Ú", ucirc: "û", Ucirc: "Û", ugrave: "ù", Ugrave: "Ù", uml: "¨", uuml: "ü", Uuml: "Ü", yacute: "ý", Yacute: "Ý", yen: "¥", yuml: "ÿ" }, m = { 0: "�", 128: "€", 130: "‚", 131: "ƒ", 132: "„", 133: "…", 134: "†", 135: "‡", 136: "ˆ", 137: "‰", 138: "Š", 139: "‹", 140: "Œ", 142: "Ž", 145: "‘", 146: "’", 147: "“", 148: "”", 149: "•", 150: "–", 151: "—", 152: "˜", 153: "™", 154: "š", 155: "›", 156: "œ", 158: "ž", 159: "Ÿ" }, _ = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65e3, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111], w = String.fromCharCode, x = {}.hasOwnProperty, k = function(t, e) { return x.call(t, e) }, E = function(t, e) { if (!t) return e; var n, r = {}; for (n in e) r[n] = k(t, n) ? t[n] : e[n]; return r }, A = function(t, e) { var n = ""; return t >= 55296 && t <= 57343 || t > 1114111 ? (e && T("character reference outside the permissible Unicode range"), "�") : k(m, t) ? (e && T("disallowed character reference"), m[t]) : (e && function(t, e) { for (var n = -1, r = t.length; ++n < r;) if (t[n] == e) return !0; return !1 }(_, t) && T("disallowed character reference"), t > 65535 && (n += w((t -= 65536) >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), n += w(t)) }, S = function(t) { return "&#x" + t.toString(16).toUpperCase() + ";" }, M = function(t) { return "&#" + t + ";" }, T = function(t) { throw Error("Parse error: " + t) }, D = function(t, e) { (e = E(e, D.options)).strict && g.test(t) && T("forbidden code point"); var n = e.encodeEverything, r = e.useNamedReferences, i = e.allowUnsafeSymbols, a = e.decimal ? M : S, o = function(t) { return a(t.charCodeAt(0)) }; return n ? (t = t.replace(u, (function(t) { return r && k(l, t) ? "&" + l[t] + ";" : o(t) })), r && (t = t.replace(/>\u20D2/g, ">⃒").replace(/<\u20D2/g, "<⃒").replace(/fj/g, "fj")), r && (t = t.replace(f, (function(t) { return "&" + l[t] + ";" })))) : r ? (i || (t = t.replace(h, (function(t) { return "&" + l[t] + ";" }))), t = (t = t.replace(/>\u20D2/g, ">⃒").replace(/<\u20D2/g, "<⃒")).replace(f, (function(t) { return "&" + l[t] + ";" }))) : i || (t = t.replace(h, o)), t.replace(s, (function(t) { var e = t.charCodeAt(0), n = t.charCodeAt(1); return a(1024 * (e - 55296) + n - 56320 + 65536) })).replace(c, o) }; D.options = { allowUnsafeSymbols: !1, encodeEverything: !1, strict: !1, useNamedReferences: !1, decimal: !1 }; var C = function(t, e) { var n = (e = E(e, C.options)).strict; return n && p.test(t) && T("malformed character reference"), t.replace(y, (function(t, r, i, a, o, s, u, c, f) { var l, h, d, p, g, y; return r ? b[g = r] : i ? (g = i, (y = a) && e.isAttributeValue ? (n && "=" == y && T("`&` did not start a character reference"), t) : (n && T("named character reference was not terminated by a semicolon"), v[g] + (y || ""))) : o ? (d = o, h = s, n && !h && T("character reference was not terminated by a semicolon"), l = parseInt(d, 10), A(l, n)) : u ? (p = u, h = c, n && !h && T("character reference was not terminated by a semicolon"), l = parseInt(p, 16), A(l, n)) : (n && T("named character reference was not terminated by a semicolon"), t) })) }; C.options = { isAttributeValue: !1, strict: !1 }; var N = { version: "1.2.0", encode: D, decode: C, escape: function(t) { return t.replace(h, (function(t) { return d[t] })) }, unescape: C }; if ("function" == typeof define && "object" == typeof define.amd && define.amd) define((function() { return N })); else if (i && !i.nodeType) if (a) a.exports = N; else for (var I in N) k(N, I) && (i[I] = N[I]); else r.he = N }(this) }).call(this, n(9)(t), n(12)) }, function(t, e, n) { "use strict"; var r = n(231), i = n(232), a = n(233); function o(t, e, n) { if (!t) return t; if (!e) return t; "string" == typeof n && (n = { keyframes: n }), n || (n = { keyframes: !1 }), t = s(t, e + " $1$2"); var i = e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); t = (t = (t = (t = t.replace(new RegExp("(" + i + ")\\s*\\1(?=[\\s\\r\\n,{])", "g"), "$1")).replace(new RegExp("(" + i + ")\\s*:host", "g"), "$1")).replace(new RegExp("(" + i + ")\\s*@", "g"), "@")).replace(new RegExp("(" + i + ")\\s*:root", "g"), ":root"); for (var a, o = [], u = /@keyframes\s+([a-zA-Z0-9_-]+)\s*{/g; null !== (a = u.exec(t));) o.indexOf(a[1]) < 0 && o.push(a[1]); var c = r(e); return o.forEach((function(e) { var r = (!0 === n.keyframes ? c + "-" : "string" == typeof n.keyframes ? n.keyframes : "") + e; t = (t = t.replace(new RegExp("(@keyframes\\s+)" + e + "(\\s*{)", "g"), "$1" + r + "$2")).replace(new RegExp("(animation(?:-name)?\\s*:[^;]*\\s*)" + e + "([\\s;}])", "g"), "$1" + r + "$2") })), t = t.replace(new RegExp("(" + i + " )(\\s*(?:to|from|[+-]?(?:(?:\\.\\d+)|(?:\\d+(?:\\.\\d*)?))%))(?=[\\s\\r\\n,{])", "g"), "$2") } function s(t, e) { var n = []; return t = a(t), t = (t = i.replace(t, !0, n)).replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g, e), t = i.paste(t, n) } t.exports = o, o.replace = s }, function(t, e, n) { "use strict"; const r = n(420), i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~".split(""), a = (t, e) => { const n = e.length, i = Math.floor(65536 / n) * n - 1, a = 2 * Math.ceil(1.1 * t); let o = "", s = 0; for (; s < t;) { const u = r.randomBytes(a); let c = 0; for (; c < a && s < t;) { const t = u.readUInt16LE(c); c += 2, t > i || (o += e[t % n], s++) } } return o }, o = [void 0, "hex", "base64", "url-safe"]; t.exports = ({ length: t, type: e, characters: n }) => { if (!(t >= 0 && Number.isFinite(t))) throw new TypeError("Expected a `length` to be a non-negative finite number"); if (void 0 !== e && void 0 !== n) throw new TypeError("Expected either `type` or `characters`"); if (void 0 !== n && "string" != typeof n) throw new TypeError("Expected `characters` to be string"); if (!o.includes(e)) throw new TypeError(`Unknown type: ${e}`); if (void 0 === e && void 0 === n && (e = "hex"), "hex" === e || void 0 === e && void 0 === n) return r.randomBytes(Math.ceil(.5 * t)).toString("hex").slice(0, t); if ("base64" === e) return r.randomBytes(Math.ceil(.75 * t)).toString("base64").slice(0, t); if ("url-safe" === e) return a(t, i); if (0 === n.length) throw new TypeError("Expected `characters` string length to be greater than or equal to 1"); if (n.length > 65536) throw new TypeError("Expected `characters` string length to be less or equal to 65536"); return a(t, n.split("")) } }, function(t, e, n) { var r; r = function() { var t = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","‘":"\'","’":"\'","“":"\\"","”":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial"}'), e = JSON.parse('{"vi":{"Đ":"D","đ":"d"}}'); function n(n, r) { if ("string" != typeof n) throw new Error("slugify: string argument expected"); var i = e[(r = "string" == typeof r ? { replacement: r } : r || {}).locale] || {}, a = n.split("").reduce((function(e, n) { return e + (i[n] || t[n] || n).replace(r.remove || /[^\w\s$*_+~.()'"!\-:@]/g, "") }), "").trim().replace(/[-\s]+/g, r.replacement || "-"); return r.lower ? a.toLowerCase() : a } return n.extend = function(e) { for (var n in e) t[n] = e[n] }, n }, t.exports = r(), t.exports.default = r() }, function(t, e, n) { /*! * Escaper v2.5.3 * https://github.com/kobezzza/Escaper * * Released under the MIT license * https://github.com/kobezzza/Escaper/blob/master/LICENSE * * Date: Tue, 23 Jan 2018 15:58:45 GMT */ ! function(t) { "use strict"; var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, n = void 0, r = n = { VERSION: [2, 5, 3], content: [], cache: {}, snakeskinRgxp: null, symbols: null, replace: T, paste: C }, i = { '"': !0, "'": !0, "`": !0 }, a = { "/": !0 }; for (var o in i) { if (!i.hasOwnProperty(o)) break; a[o] = !0 } var s = { "//": !0, "//*": !0, "//!": !0, "//#": !0, "//@": !0, "//$": !0 }, u = { "/*": !0, "/**": !0, "/*!": !0, "/*#": !0, "/*@": !0, "/*$": !0 }, c = [], f = {}; for (var l in a) { if (!a.hasOwnProperty(l)) break; c.push(l), f[l] = !0 } for (var h in s) { if (!s.hasOwnProperty(h)) break; c.push(h), f[h] = !0 } for (var d in u) { if (!u.hasOwnProperty(d)) break; c.push(d), f[d] = !0 } var p = [], g = { g: !0, m: !0, i: !0, y: !0, u: !0 }; for (var y in g) { if (!g.hasOwnProperty(y)) break; p.push(y) } var b = { "-": !0, "+": !0, "*": !0, "%": !0, "~": !0, ">": !0, "<": !0, "^": !0, ",": !0, ";": !0, "=": !0, "|": !0, "&": !0, "!": !0, "?": !0, ":": !0, "(": !0, "{": !0, "[": !0 }, v = { return: !0, yield: !0, await: !0, typeof: !0, void: !0, instanceof: !0, delete: !0, in : !0, new: !0, of : !0 }; function m(t, e, n) { for (var r in t) { if (!t.hasOwnProperty(r)) break; r in e == 0 && (e[r] = n) } } var _ = void 0, w = void 0, x = /[^\s/]/, k = /[a-z]/, E = /\s/, A = /[\r\n]/, S = /\${pos}/g, M = { object: !0, function: !0 }; function T(t, r, o, l) { _ = _ || n.symbols || "a-z", w = w || n.snakeskinRgxp || new RegExp("[!$" + _ + "_]", "i"); var h = n, d = h.cache, y = h.content, T = Boolean(r && M[void 0 === r ? "undefined" : e(r)]), D = T ? Object(r) : {}; function C(t) { return D["@label"] ? D["@label"].replace(S, t) : "__ESCAPER_QUOT__" + t + "_" } var N = !1; "boolean" == typeof r && (N = Boolean(r)), "@comments" in D && (m(u, D, D["@comments"]), m(s, D, D["@comments"]), delete D["@comments"]), "@strings" in D && (m(i, D, D["@strings"]), delete D["@strings"]), "@literals" in D && (m(a, D, D["@literals"]), delete D["@literals"]), "@all" in D && (m(f, D, D["@all"]), delete D["@all"]); for (var I = "", L = -1; ++L < c.length;) { var B = c[L]; u[B] || s[B] ? D[B] = N || D[B] : D[B] = D[B] || !T, I += D[B] + "," } var O = t, R = o || y; if (R === y && d[I] && d[I][O]) return d[I][O]; for (var P = !1, F = !0, q = !1, j = !1, U = 0, z = !1, Y = 0, V = !1, H = void 0, G = void 0, $ = "", W = "", K = -1; ++K < t.length;) { var X = t.charAt(K), Z = t.charAt(K + 1), J = t.substr(K, 2), Q = t.substr(K, 3); if (j)(A.test(Z) && s[j] || u[X + t.charAt(K - 1)] && K - U > 2 && u[j]) && (D[j] && (H = t.substring(U, K + 1), -1 === D[j] ? G = "" : (G = C(R.length), R.push(H)), t = t.substring(0, U) + G + t.substring(K + 1), K += G.length - H.length), j = !1); else { if (!P) { if ("/" === X && ((s[J] || u[J]) && (j = s[Q] || u[Q] ? Q : J), j)) { U = K; continue } b[X] || v[W] ? (F = !0, W = "") : x.test(X) && (F = !1), k.test(X) ? $ += X : (W = $, $ = ""); var tt = !1; l && ("|" === X && w.test(Z) ? (V = !0, F = !1, tt = !0) : V && E.test(X) && (V = !1, F = !0, tt = !0)), tt || (b[X] ? F = !0 : x.test(X) && (F = !1)) } if ("/" !== P || q || ("[" === X ? z = !0 : "]" === X && (z = !1)), !P && Y && ("}" === X ? Y-- : "{" === X && Y++, Y || (X = "`")), "`" !== P || q || "${" !== J || (X = "`", K++, Y++), !f[X] || "/" === X && !F || P) { if (P && ("\\" === X || q)) q = !q; else if (f[X] && P === X && !q && ("/" !== P || !z)) { if ("/" === X) for (var et = -1; ++et < p.length;) g[t.charAt(K + 1)] && K++; P = !1, F = !1, D[X] && (H = t.substring(U, K + 1), -1 === D[X] ? G = "" : (G = C(R.length), R.push(H)), t = t.substring(0, U) + G + t.substring(K + 1), K += G.length - H.length) } } else P = X, U = K } } return R === y && (d[I] = d[I] || {}, d[I][O] = t), t } var D = /__ESCAPER_QUOT__(\d+)_/g; function C(t, e, r) { return t.replace(r || D, (function(t, r) { return (e || n.content)[r] })) } t.default = r, t.replace = T, t.paste = C, Object.defineProperty(t, "__esModule", { value: !0 }) }(e) }, function(t, e, n) { "use strict"; var r = n(234); t.exports = function(t, e) { var n; t = t.toString(); var i = "", a = "", o = !1, s = !(!1 === (e = e || {}).preserve || !0 === e.all), u = ""; "function" == typeof e.preserve ? (s = !1, n = e.preserve) : r(e.preserve) && (s = !1, n = function(t) { return e.preserve.test(t) }); for (var c = 0; c < t.length; c++) if (a = t[c], "\\" !== t[c - 1] && ('"' !== a && "'" !== a || (o === a ? o = !1 : o || (o = a))), o || "/" !== a || "*" !== t[c + 1] || s && "!" === t[c + 2]) u += a; else { for (var f = c + 2; f < t.length; f++) { if ("*" === t[f] && "/" === t[f + 1]) { n && (u = n(i) ? u + "/*" + i + "*/" : u, i = ""); break } n && (i += t[f]) } c = f + 1 } return u } }, function(t, e, n) { "use strict"; t.exports = function(t) { return "[object RegExp]" === Object.prototype.toString.call(t) } }, function(t, e, n) { var r = { "./locale": 129, "./locale.js": 129 }; function i(t) { var e = a(t); return n(e) } function a(t) { if (!n.o(r, t)) { var e = new Error("Cannot find module '" + t + "'"); throw e.code = "MODULE_NOT_FOUND", e } return r[t] } i.keys = function() { return Object.keys(r) }, i.resolve = a, t.exports = i, i.id = 235 }, function(t, e, n) { t.exports = { Graph: n(89), version: n(337) } }, function(t, e, n) { var r = n(130), i = 4; t.exports = function(t) { return r(t, i) } }, function(t, e) { t.exports = function() { this.__data__ = [], this.size = 0 } }, function(t, e, n) { var r = n(63), i = Array.prototype.splice; t.exports = function(t) { var e = this.__data__, n = r(e, t); return !(n < 0) && (n == e.length - 1 ? e.pop() : i.call(e, n, 1), --this.size, !0) } }, function(t, e, n) { var r = n(63); t.exports = function(t) { var e = this.__data__, n = r(e, t); return n < 0 ? void 0 : e[n][1] } }, function(t, e, n) { var r = n(63); t.exports = function(t) { return r(this.__data__, t) > -1 } }, function(t, e, n) { var r = n(63); t.exports = function(t, e) { var n = this.__data__, i = r(n, t); return i < 0 ? (++this.size, n.push([t, e])) : n[i][1] = e, this } }, function(t, e, n) { var r = n(62); t.exports = function() { this.__data__ = new r, this.size = 0 } }, function(t, e) { t.exports = function(t) { var e = this.__data__, n = e.delete(t); return this.size = e.size, n } }, function(t, e) { t.exports = function(t) { return this.__data__.get(t) } }, function(t, e) { t.exports = function(t) { return this.__data__.has(t) } }, function(t, e, n) { var r = n(62), i = n(90), a = n(91), o = 200; t.exports = function(t, e) { var n = this.__data__; if (n instanceof r) { var s = n.__data__; if (!i || s.length < o - 1) return s.push([t, e]), this.size = ++n.size, this; n = this.__data__ = new a(s) } return n.set(t, e), this.size = n.size, this } }, function(t, e, n) { var r = n(37), i = n(251), a = n(14), o = n(132), s = /^\[object .+?Constructor\]$/, u = Function.prototype, c = Object.prototype, f = u.toString, l = c.hasOwnProperty, h = RegExp("^" + f.call(l).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); t.exports = function(t) { return !(!a(t) || i(t)) && (r(t) ? h : s).test(o(t)) } }, function(t, e, n) { var r = n(38), i = Object.prototype, a = i.hasOwnProperty, o = i.toString, s = r ? r.toStringTag : void 0; t.exports = function(t) { var e = a.call(t, s), n = t[s]; try { t[s] = void 0; var r = !0 } catch (t) {} var i = o.call(t); return r && (e ? t[s] = n : delete t[s]), i } }, function(t, e) { var n = Object.prototype.toString; t.exports = function(t) { return n.call(t) } }, function(t, e, n) { var r, i = n(252), a = (r = /[^.]+$/.exec(i && i.keys && i.keys.IE_PROTO || "")) ? "Symbol(src)_1." + r : ""; t.exports = function(t) { return !!a && a in t } }, function(t, e, n) { var r = n(18)["__core-js_shared__"]; t.exports = r }, function(t, e) { t.exports = function(t, e) { return null == t ? void 0 : t[e] } }, function(t, e, n) { var r = n(255), i = n(62), a = n(90); t.exports = function() { this.size = 0, this.__data__ = { hash: new r, map: new(a || i), string: new r } } }, function(t, e, n) { var r = n(256), i = n(257), a = n(258), o = n(259), s = n(260); function u(t) { var e = -1, n = null == t ? 0 : t.length; for (this.clear(); ++e < n;) { var r = t[e]; this.set(r[0], r[1]) } } u.prototype.clear = r, u.prototype.delete = i, u.prototype.get = a, u.prototype.has = o, u.prototype.set = s, t.exports = u }, function(t, e, n) { var r = n(64); t.exports = function() { this.__data__ = r ? r(null) : {}, this.size = 0 } }, function(t, e) { t.exports = function(t) { var e = this.has(t) && delete this.__data__[t]; return this.size -= e ? 1 : 0, e } }, function(t, e, n) { var r = n(64), i = "__lodash_hash_undefined__", a = Object.prototype.hasOwnProperty; t.exports = function(t) { var e = this.__data__; if (r) { var n = e[t]; return n === i ? void 0 : n } return a.call(e, t) ? e[t] : void 0 } }, function(t, e, n) { var r = n(64), i = Object.prototype.hasOwnProperty; t.exports = function(t) { var e = this.__data__; return r ? void 0 !== e[t] : i.call(e, t) } }, function(t, e, n) { var r = n(64), i = "__lodash_hash_undefined__"; t.exports = function(t, e) { var n = this.__data__; return this.size += this.has(t) ? 0 : 1, n[t] = r && void 0 === e ? i : e, this } }, function(t, e, n) { var r = n(65); t.exports = function(t) { var e = r(this, t).delete(t); return this.size -= e ? 1 : 0, e } }, function(t, e) { t.exports = function(t) { var e = typeof t; return "string" == e || "number" == e || "symbol" == e || "boolean" == e ? "__proto__" !== t : null === t } }, function(t, e, n) { var r = n(65); t.exports = function(t) { return r(this, t).get(t) } }, function(t, e, n) { var r = n(65); t.exports = function(t) { return r(this, t).has(t) } }, function(t, e, n) { var r = n(65); t.exports = function(t, e) { var n = r(this, t), i = n.size; return n.set(t, e), this.size += n.size == i ? 0 : 1, this } }, function(t, e, n) { var r = n(49), i = n(27); t.exports = function(t, e) { return t && r(e, i(e), t) } }, function(t, e) { t.exports = function(t, e) { for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n); return r } }, function(t, e, n) { var r = n(33), i = n(20), a = "[object Arguments]"; t.exports = function(t) { return i(t) && r(t) == a } }, function(t, e) { t.exports = function() { return !1 } }, function(t, e, n) { var r = n(33), i = n(93), a = n(20), o = {}; o["[object Float32Array]"] = o["[object Float64Array]"] = o["[object Int8Array]"] = o["[object Int16Array]"] = o["[object Int32Array]"] = o["[object Uint8Array]"] = o["[object Uint8ClampedArray]"] = o["[object Uint16Array]"] = o["[object Uint32Array]"] = !0, o["[object Arguments]"] = o["[object Array]"] = o["[object ArrayBuffer]"] = o["[object Boolean]"] = o["[object DataView]"] = o["[object Date]"] = o["[object Error]"] = o["[object Function]"] = o["[object Map]"] = o["[object Number]"] = o["[object Object]"] = o["[object RegExp]"] = o["[object Set]"] = o["[object String]"] = o["[object WeakMap]"] = !1, t.exports = function(t) { return a(t) && i(t.length) && !!o[r(t)] } }, function(t, e, n) { var r = n(135)(Object.keys, Object); t.exports = r }, function(t, e, n) { var r = n(49), i = n(40); t.exports = function(t, e) { return t && r(e, i(e), t) } }, function(t, e, n) { var r = n(14), i = n(70), a = n(274), o = Object.prototype.hasOwnProperty; t.exports = function(t) { if (!r(t)) return a(t); var e = i(t), n = []; for (var s in t)("constructor" != s || !e && o.call(t, s)) && n.push(s); return n } }, function(t, e) { t.exports = function(t) { var e = []; if (null != t) for (var n in Object(t)) e.push(n); return e } }, function(t, e, n) { var r = n(49), i = n(96); t.exports = function(t, e) { return r(t, i(t), e) } }, function(t, e, n) { var r = n(49), i = n(140); t.exports = function(t, e) { return r(t, i(t), e) } }, function(t, e, n) { var r = n(142), i = n(140), a = n(40); t.exports = function(t) { return r(t, a, i) } }, function(t, e, n) { var r = n(32)(n(18), "DataView"); t.exports = r }, function(t, e, n) { var r = n(32)(n(18), "Promise"); t.exports = r }, function(t, e, n) { var r = n(32)(n(18), "WeakMap"); t.exports = r }, function(t, e) { var n = Object.prototype.hasOwnProperty; t.exports = function(t) { var e = t.length, r = new t.constructor(e); return e && "string" == typeof t[0] && n.call(t, "index") && (r.index = t.index, r.input = t.input), r } }, function(t, e, n) { var r = n(98), i = n(283), a = n(284), o = n(285), s = n(145), u = "[object Boolean]", c = "[object Date]", f = "[object Map]", l = "[object Number]", h = "[object RegExp]", d = "[object Set]", p = "[object String]", g = "[object Symbol]", y = "[object ArrayBuffer]", b = "[object DataView]", v = "[object Float32Array]", m = "[object Float64Array]", _ = "[object Int8Array]", w = "[object Int16Array]", x = "[object Int32Array]", k = "[object Uint8Array]", E = "[object Uint8ClampedArray]", A = "[object Uint16Array]", S = "[object Uint32Array]"; t.exports = function(t, e, n) { var M = t.constructor; switch (e) { case y: return r(t); case u: case c: return new M(+t); case b: return i(t, n); case v: case m: case _: case w: case x: case k: case E: case A: case S: return s(t, n); case f: return new M; case l: case p: return new M(t); case h: return a(t); case d: return new M; case g: return o(t) } } }, function(t, e, n) { var r = n(98); t.exports = function(t, e) { var n = e ? r(t.buffer) : t.buffer; return new t.constructor(n, t.byteOffset, t.byteLength) } }, function(t, e) { var n = /\w*$/; t.exports = function(t) { var e = new t.constructor(t.source, n.exec(t)); return e.lastIndex = t.lastIndex, e } }, function(t, e, n) { var r = n(38), i = r ? r.prototype : void 0, a = i ? i.valueOf : void 0; t.exports = function(t) { return a ? Object(a.call(t)) : {} } }, function(t, e, n) { var r = n(287), i = n(69), a = n(94), o = a && a.isMap, s = o ? i(o) : r; t.exports = s }, function(t, e, n) { var r = n(41), i = n(20), a = "[object Map]"; t.exports = function(t) { return i(t) && r(t) == a } }, function(t, e, n) { var r = n(289), i = n(69), a = n(94), o = a && a.isSet, s = o ? i(o) : r; t.exports = s }, function(t, e, n) { var r = n(41), i = n(20), a = "[object Set]"; t.exports = function(t) { return i(t) && r(t) == a } }, function(t, e) { t.exports = function(t) { return function(e, n, r) { for (var i = -1, a = Object(e), o = r(e), s = o.length; s--;) { var u = o[t ? s : ++i]; if (!1 === n(a[u], u, a)) break } return e } } }, function(t, e, n) { var r = n(23); t.exports = function(t, e) { return function(n, i) { if (null == n) return n; if (!r(n)) return t(n, i); for (var a = n.length, o = e ? a : -1, s = Object(n); (e ? o-- : ++o < a) && !1 !== i(s[o], o, s);); return n } } }, function(t, e, n) { var r = n(72); t.exports = function(t, e) { var n = []; return r(t, (function(t, r, i) { e(t, r, i) && n.push(t) })), n } }, function(t, e, n) { var r = n(294), i = n(302), a = n(156); t.exports = function(t) { var e = i(t); return 1 == e.length && e[0][2] ? a(e[0][0], e[0][1]) : function(n) { return n === t || r(n, t, e) } } }, function(t, e, n) { var r = n(61), i = n(151), a = 1, o = 2; t.exports = function(t, e, n, s) { var u = n.length, c = u, f = !s; if (null == t) return !c; for (t = Object(t); u--;) { var l = n[u]; if (f && l[2] ? l[1] !== t[l[0]] : !(l[0] in t)) return !1 } for (; ++u < c;) { var h = (l = n[u])[0], d = t[h], p = l[1]; if (f && l[2]) { if (void 0 === d && !(h in t)) return !1 } else { var g = new r; if (s) var y = s(d, p, h, t, e, g); if (!(void 0 === y ? i(p, d, a | o, s, g) : y)) return !1 } } return !0 } }, function(t, e, n) { var r = n(61), i = n(152), a = n(299), o = n(301), s = n(41), u = n(6), c = n(39), f = n(51), l = 1, h = "[object Arguments]", d = "[object Array]", p = "[object Object]", g = Object.prototype.hasOwnProperty; t.exports = function(t, e, n, y, b, v) { var m = u(t), _ = u(e), w = m ? d : s(t), x = _ ? d : s(e), k = (w = w == h ? p : w) == p, E = (x = x == h ? p : x) == p, A = w == x; if (A && c(t)) { if (!c(e)) return !1; m = !0, k = !1 } if (A && !k) return v || (v = new r), m || f(t) ? i(t, e, n, y, b, v) : a(t, e, w, n, y, b, v); if (!(n & l)) { var S = k && g.call(t, "__wrapped__"), M = E && g.call(e, "__wrapped__"); if (S || M) { var T = S ? t.value() : t, D = M ? e.value() : e; return v || (v = new r), b(T, D, n, y, v) } } return !!A && (v || (v = new r), o(t, e, n, y, b, v)) } }, function(t, e) { var n = "__lodash_hash_undefined__"; t.exports = function(t) { return this.__data__.set(t, n), this } }, function(t, e) { t.exports = function(t) { return this.__data__.has(t) } }, function(t, e) { t.exports = function(t, e) { for (var n = -1, r = null == t ? 0 : t.length; ++n < r;) if (e(t[n], n, t)) return !0; return !1 } }, function(t, e, n) { var r = n(38), i = n(144), a = n(36), o = n(152), s = n(300), u = n(103), c = 1, f = 2, l = "[object Boolean]", h = "[object Date]", d = "[object Error]", p = "[object Map]", g = "[object Number]", y = "[object RegExp]", b = "[object Set]", v = "[object String]", m = "[object Symbol]", _ = "[object ArrayBuffer]", w = "[object DataView]", x = r ? r.prototype : void 0, k = x ? x.valueOf : void 0; t.exports = function(t, e, n, r, x, E, A) { switch (n) { case w: if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1; t = t.buffer, e = e.buffer; case _: return !(t.byteLength != e.byteLength || !E(new i(t), new i(e))); case l: case h: case g: return a(+t, +e); case d: return t.name == e.name && t.message == e.message; case y: case v: return t == e + ""; case p: var S = s; case b: var M = r & c; if (S || (S = u), t.size != e.size && !M) return !1; var T = A.get(t); if (T) return T == e; r |= f, A.set(t, e); var D = o(S(t), S(e), r, x, E, A); return A.delete(t), D; case m: if (k) return k.call(t) == k.call(e) } return !1 } }, function(t, e) { t.exports = function(t) { var e = -1, n = Array(t.size); return t.forEach((function(t, r) { n[++e] = [r, t] })), n } }, function(t, e, n) { var r = n(141), i = 1, a = Object.prototype.hasOwnProperty; t.exports = function(t, e, n, o, s, u) { var c = n & i, f = r(t), l = f.length; if (l != r(e).length && !c) return !1; for (var h = l; h--;) { var d = f[h]; if (!(c ? d in e : a.call(e, d))) return !1 } var p = u.get(t); if (p && u.get(e)) return p == e; var g = !0; u.set(t, e), u.set(e, t); for (var y = c; ++h < l;) { var b = t[d = f[h]], v = e[d]; if (o) var m = c ? o(v, b, d, e, t, u) : o(b, v, d, t, e, u); if (!(void 0 === m ? b === v || s(b, v, n, o, u) : m)) { g = !1; break } y || (y = "constructor" == d) } if (g && !y) { var _ = t.constructor, w = e.constructor; _ != w && "constructor" in t && "constructor" in e && !("function" == typeof _ && _ instanceof _ && "function" == typeof w && w instanceof w) && (g = !1) } return u.delete(t), u.delete(e), g } }, function(t, e, n) { var r = n(155), i = n(27); t.exports = function(t) { for (var e = i(t), n = e.length; n--;) { var a = e[n], o = t[a]; e[n] = [a, o, r(o)] } return e } }, function(t, e, n) { var r = n(151), i = n(304), a = n(158), o = n(105), s = n(155), u = n(156), c = n(52), f = 1, l = 2; t.exports = function(t, e) { return o(t) && s(e) ? u(c(t), e) : function(n) { var o = i(n, t); return void 0 === o && o === e ? a(n, t) : r(e, o, f | l) } } }, function(t, e, n) { var r = n(104); t.exports = function(t, e, n) { var i = null == t ? void 0 : r(t, e); return void 0 === i ? n : i } }, function(t, e, n) { var r = n(306), i = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, a = /\\(\\)?/g, o = r((function(t) { var e = []; return 46 === t.charCodeAt(0) && e.push(""), t.replace(i, (function(t, n, r, i) { e.push(r ? i.replace(a, "$1") : n || t) })), e })); t.exports = o }, function(t, e, n) { var r = n(307), i = 500; t.exports = function(t) { var e = r(t, (function(t) { return n.size === i && n.clear(), t })), n = e.cache; return e } }, function(t, e, n) { var r = n(91), i = "Expected a function"; function a(t, e) { if ("function" != typeof t || null != e && "function" != typeof e) throw new TypeError(i); var n = function() { var r = arguments, i = e ? e.apply(this, r) : r[0], a = n.cache; if (a.has(i)) return a.get(i); var o = t.apply(this, r); return n.cache = a.set(i, o) || a, o }; return n.cache = new(a.Cache || r), n } a.Cache = r, t.exports = a }, function(t, e, n) { var r = n(38), i = n(74), a = n(6), o = n(42), s = 1 / 0, u = r ? r.prototype : void 0, c = u ? u.toString : void 0; t.exports = function t(e) { if ("string" == typeof e) return e; if (a(e)) return i(e, t) + ""; if (o(e)) return c ? c.call(e) : ""; var n = e + ""; return "0" == n && 1 / e == -s ? "-0" : n } }, function(t, e) { t.exports = function(t, e) { return null != t && e in Object(t) } }, function(t, e, n) { var r = n(160), i = n(311), a = n(105), o = n(52); t.exports = function(t) { return a(t) ? r(o(t)) : i(t) } }, function(t, e, n) { var r = n(104); t.exports = function(t) { return function(e) { return r(e, t) } } }, function(t, e) { var n = Object.prototype.hasOwnProperty; t.exports = function(t, e) { return null != t && n.call(t, e) } }, function(t, e, n) { var r = n(95), i = n(41), a = n(50), o = n(6), s = n(23), u = n(39), c = n(70), f = n(51), l = "[object Map]", h = "[object Set]", d = Object.prototype.hasOwnProperty; t.exports = function(t) { if (null == t) return !0; if (s(t) && (o(t) || "string" == typeof t || "function" == typeof t.splice || u(t) || f(t) || a(t))) return !t.length; var e = i(t); if (e == l || e == h) return !t.size; if (c(t)) return !r(t).length; for (var n in t) if (d.call(t, n)) return !1; return !0 } }, function(t, e) { t.exports = function(t, e, n, r) { var i = -1, a = null == t ? 0 : t.length; for (r && a && (n = t[++i]); ++i < a;) n = e(n, t[i], i, t); return n } }, function(t, e) { t.exports = function(t, e, n, r, i) { return i(t, (function(t, i, a) { n = r ? (r = !1, t) : e(n, t, i, a) })), n } }, function(t, e, n) { var r = n(95), i = n(41), a = n(23), o = n(317), s = n(318), u = "[object Map]", c = "[object Set]"; t.exports = function(t) { if (null == t) return 0; if (a(t)) return o(t) ? s(t) : t.length; var e = i(t); return e == u || e == c ? t.size : r(t).length } }, function(t, e, n) { var r = n(33), i = n(6), a = n(20), o = "[object String]"; t.exports = function(t) { return "string" == typeof t || !i(t) && a(t) && r(t) == o } }, function(t, e, n) { var r = n(319), i = n(320), a = n(321); t.exports = function(t) { return i(t) ? a(t) : r(t) } }, function(t, e, n) { var r = n(160)("length"); t.exports = r }, function(t, e) { var n = RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"); t.exports = function(t) { return n.test(t) } }, function(t, e) { var n = "[\\ud800-\\udfff]", r = "[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]", i = "\\ud83c[\\udffb-\\udfff]", a = "[^\\ud800-\\udfff]", o = "(?:\\ud83c[\\udde6-\\uddff]){2}", s = "[\\ud800-\\udbff][\\udc00-\\udfff]", u = "(?:" + r + "|" + i + ")" + "?", c = "[\\ufe0e\\ufe0f]?" + u + ("(?:\\u200d(?:" + [a, o, s].join("|") + ")[\\ufe0e\\ufe0f]?" + u + ")*"), f = "(?:" + [a + r + "?", r, o, s, n].join("|") + ")", l = RegExp(i + "(?=" + i + ")|" + f + c, "g"); t.exports = function(t) { for (var e = l.lastIndex = 0; l.test(t);) ++e; return e } }, function(t, e, n) { var r = n(92), i = n(147), a = n(101), o = n(24), s = n(71), u = n(6), c = n(39), f = n(37), l = n(14), h = n(51); t.exports = function(t, e, n) { var d = u(t), p = d || c(t) || h(t); if (e = o(e, 4), null == n) { var g = t && t.constructor; n = p ? d ? new g : [] : l(t) && f(g) ? i(s(t)) : {} } return (p ? r : a)(t, (function(t, r, i) { return e(n, t, r, i) })), n } }, function(t, e, n) { var r = n(107), i = n(75), a = n(328), o = n(168), s = i((function(t) { return a(r(t, 1, o, !0)) })); t.exports = s }, function(t, e, n) { var r = n(38), i = n(50), a = n(6), o = r ? r.isConcatSpreadable : void 0; t.exports = function(t) { return a(t) || i(t) || !!(o && t && t[o]) } }, function(t, e) { t.exports = function(t, e, n) { switch (n.length) { case 0: return t.call(e); case 1: return t.call(e, n[0]); case 2: return t.call(e, n[0], n[1]); case 3: return t.call(e, n[0], n[1], n[2]) } return t.apply(e, n) } }, function(t, e, n) { var r = n(99), i = n(133), a = n(34), o = i ? function(t, e) { return i(t, "toString", { configurable: !0, enumerable: !1, value: r(e), writable: !0 }) } : a; t.exports = o }, function(t, e) { var n = 800, r = 16, i = Date.now; t.exports = function(t) { var e = 0, a = 0; return function() { var o = i(), s = r - (o - a); if (a = o, s > 0) { if (++e >= n) return arguments[0] } else e = 0; return t.apply(void 0, arguments) } } }, function(t, e, n) { var r = n(153), i = n(329), a = n(333), o = n(154), s = n(334), u = n(103), c = 200; t.exports = function(t, e, n) { var f = -1, l = i, h = t.length, d = !0, p = [], g = p; if (n) d = !1, l = a; else if (h >= c) { var y = e ? null : s(t); if (y) return u(y); d = !1, l = o, g = new r } else g = e ? [] : p; t: for (; ++f < h;) { var b = t[f], v = e ? e(b) : b; if (b = n || 0 !== b ? b : 0, d && v == v) { for (var m = g.length; m--;) if (g[m] === v) continue t; e && g.push(v), p.push(b) } else l(g, v, n) || (g !== p && g.push(v), p.push(b)) } return p } }, function(t, e, n) { var r = n(330); t.exports = function(t, e) { return !!(null == t ? 0 : t.length) && r(t, e, 0) > -1 } }, function(t, e, n) { var r = n(167), i = n(331), a = n(332); t.exports = function(t, e, n) { return e == e ? a(t, e, n) : r(t, i, n) } }, function(t, e) { t.exports = function(t) { return t != t } }, function(t, e) { t.exports = function(t, e, n) { for (var r = n - 1, i = t.length; ++r < i;) if (t[r] === e) return r; return -1 } }, function(t, e) { t.exports = function(t, e, n) { for (var r = -1, i = null == t ? 0 : t.length; ++r < i;) if (n(e, t[r])) return !0; return !1 } }, function(t, e, n) { var r = n(143), i = n(335), a = n(103), o = r && 1 / a(new r([, -0]))[1] == 1 / 0 ? function(t) { return new r(t) } : i; t.exports = o }, function(t, e) { t.exports = function() {} }, function(t, e, n) { var r = n(74); t.exports = function(t, e) { return r(e, (function(e) { return t[e] })) } }, function(t, e) { t.exports = "2.1.8" }, function(t, e, n) { var r = n(13), i = n(89); function a(t) { return r.map(t.nodes(), (function(e) { var n = t.node(e), i = t.parent(e), a = { v: e }; return r.isUndefined(n) || (a.value = n), r.isUndefined(i) || (a.parent = i), a })) } function o(t) { return r.map(t.edges(), (function(e) { var n = t.edge(e), i = { v: e.v, w: e.w }; return r.isUndefined(e.name) || (i.name = e.name), r.isUndefined(n) || (i.value = n), i })) } t.exports = { write: function(t) { var e = { options: { directed: t.isDirected(), multigraph: t.isMultigraph(), compound: t.isCompound() }, nodes: a(t), edges: o(t) }; r.isUndefined(t.graph()) || (e.value = r.clone(t.graph())); return e }, read: function(t) { var e = new i(t.options).setGraph(t.value); return r.each(t.nodes, (function(t) { e.setNode(t.v, t.value), t.parent && e.setParent(t.v, t.parent) })), r.each(t.edges, (function(t) { e.setEdge({ v: t.v, w: t.w, name: t.name }, t.value) })), e } } }, function(t, e, n) { t.exports = { components: n(340), dijkstra: n(170), dijkstraAll: n(341), findCycles: n(342), floydWarshall: n(343), isAcyclic: n(344), postorder: n(345), preorder: n(346), prim: n(347), tarjan: n(172), topsort: n(173) } }, function(t, e, n) { var r = n(13); t.exports = function(t) { var e, n = {}, i = []; function a(i) { r.has(n, i) || (n[i] = !0, e.push(i), r.each(t.successors(i), a), r.each(t.predecessors(i), a)) } return r.each(t.nodes(), (function(t) { e = [], a(t), e.length && i.push(e) })), i } }, function(t, e, n) { var r = n(170), i = n(13); t.exports = function(t, e, n) { return i.transform(t.nodes(), (function(i, a) { i[a] = r(t, a, e, n) }), {}) } }, function(t, e, n) { var r = n(13), i = n(172); t.exports = function(t) { return r.filter(i(t), (function(e) { return e.length > 1 || 1 === e.length && t.hasEdge(e[0], e[0]) })) } }, function(t, e, n) { var r = n(13); t.exports = function(t, e, n) { return function(t, e, n) { var r = {}, i = t.nodes(); return i.forEach((function(t) { r[t] = {}, r[t][t] = { distance: 0 }, i.forEach((function(e) { t !== e && (r[t][e] = { distance: Number.POSITIVE_INFINITY }) })), n(t).forEach((function(n) { var i = n.v === t ? n.w : n.v, a = e(n); r[t][i] = { distance: a, predecessor: t } })) })), i.forEach((function(t) { var e = r[t]; i.forEach((function(n) { var a = r[n]; i.forEach((function(n) { var r = a[t], i = e[n], o = a[n], s = r.distance + i.distance; s < o.distance && (o.distance = s, o.predecessor = i.predecessor) })) })) })), r }(t, e || i, n || function(e) { return t.outEdges(e) }) }; var i = r.constant(1) }, function(t, e, n) { var r = n(173); t.exports = function(t) { try { r(t) } catch (t) { if (t instanceof r.CycleException) return !1; throw t } return !0 } }, function(t, e, n) { var r = n(174); t.exports = function(t, e) { return r(t, e, "post") } }, function(t, e, n) { var r = n(174); t.exports = function(t, e) { return r(t, e, "pre") } }, function(t, e, n) { var r = n(13), i = n(89), a = n(171); t.exports = function(t, e) { var n, o = new i, s = {}, u = new a; function c(t) { var r = t.v === n ? t.w : t.v, i = u.priority(r); if (void 0 !== i) { var a = e(t); a < i && (s[r] = n, u.decrease(r, a)) } } if (0 === t.nodeCount()) return o; r.each(t.nodes(), (function(t) { u.add(t, Number.POSITIVE_INFINITY), o.setNode(t) })), u.decrease(t.nodes()[0], 0); var f = !1; for (; u.size() > 0;) { if (n = u.removeMin(), r.has(s, n)) o.setEdge(n, s[n]); else { if (f) throw new Error("Input graph is not connected: " + t); f = !0 } t.nodeEdges(n).forEach(c) } return o } }, function(t, e, n) { var r; try { r = n(25) } catch (t) {} r || (r = window.graphlib), t.exports = r }, function(t, e, n) { "use strict"; var r = n(4), i = n(382), a = n(385), o = n(386), s = n(10).normalizeRanks, u = n(388), c = n(10).removeEmptyRanks, f = n(389), l = n(390), h = n(391), d = n(392), p = n(401), g = n(10), y = n(19).Graph; t.exports = function(t, e) { var n = e && e.debugTiming ? g.time : g.notime; n("layout", (function() { var e = n(" buildLayoutGraph", (function() { return function(t) { var e = new y({ multigraph: !0, compound: !0 }), n = S(t.graph()); return e.setGraph(r.merge({}, v, A(n, b), r.pick(n, m))), r.forEach(t.nodes(), (function(n) { var i = S(t.node(n)); e.setNode(n, r.defaults(A(i, _), w)), e.setParent(n, t.parent(n)) })), r.forEach(t.edges(), (function(n) { var i = S(t.edge(n)); e.setEdge(n, r.merge({}, k, A(i, x), r.pick(i, E))) })), e }(t) })); n(" runLayout", (function() { ! function(t, e) { e(" makeSpaceForEdgeLabels", (function() { ! function(t) { var e = t.graph(); e.ranksep /= 2, r.forEach(t.edges(), (function(n) { var r = t.edge(n); r.minlen *= 2, "c" !== r.labelpos.toLowerCase() && ("TB" === e.rankdir || "BT" === e.rankdir ? r.width += r.labeloffset : r.height += r.labeloffset) })) }(t) })), e(" removeSelfEdges", (function() { ! function(t) { r.forEach(t.edges(), (function(e) { if (e.v === e.w) { var n = t.node(e.v); n.selfEdges || (n.selfEdges = []), n.selfEdges.push({ e: e, label: t.edge(e) }), t.removeEdge(e) } })) }(t) })), e(" acyclic", (function() { i.run(t) })), e(" nestingGraph.run", (function() { f.run(t) })), e(" rank", (function() { o(g.asNonCompoundGraph(t)) })), e(" injectEdgeLabelProxies", (function() { ! function(t) { r.forEach(t.edges(), (function(e) { var n = t.edge(e); if (n.width && n.height) { var r = t.node(e.v), i = { rank: (t.node(e.w).rank - r.rank) / 2 + r.rank, e: e }; g.addDummyNode(t, "edge-proxy", i, "_ep") } })) }(t) })), e(" removeEmptyRanks", (function() { c(t) })), e(" nestingGraph.cleanup", (function() { f.cleanup(t) })), e(" normalizeRanks", (function() { s(t) })), e(" assignRankMinMax", (function() { ! function(t) { var e = 0; r.forEach(t.nodes(), (function(n) { var i = t.node(n); i.borderTop && (i.minRank = t.node(i.borderTop).rank, i.maxRank = t.node(i.borderBottom).rank, e = r.max(e, i.maxRank)) })), t.graph().maxRank = e }(t) })), e(" removeEdgeLabelProxies", (function() { ! function(t) { r.forEach(t.nodes(), (function(e) { var n = t.node(e); "edge-proxy" === n.dummy && (t.edge(n.e).labelRank = n.rank, t.removeNode(e)) })) }(t) })), e(" normalize.run", (function() { a.run(t) })), e(" parentDummyChains", (function() { u(t) })), e(" addBorderSegments", (function() { l(t) })), e(" order", (function() { d(t) })), e(" insertSelfEdges", (function() { ! function(t) { var e = g.buildLayerMatrix(t); r.forEach(e, (function(e) { var n = 0; r.forEach(e, (function(e, i) { var a = t.node(e); a.order = i + n, r.forEach(a.selfEdges, (function(e) { g.addDummyNode(t, "selfedge", { width: e.label.width, height: e.label.height, rank: a.rank, order: i + ++n, e: e.e, label: e.label }, "_se") })), delete a.selfEdges })) })) }(t) })), e(" adjustCoordinateSystem", (function() { h.adjust(t) })), e(" position", (function() { p(t) })), e(" positionSelfEdges", (function() { ! function(t) { r.forEach(t.nodes(), (function(e) { var n = t.node(e); if ("selfedge" === n.dummy) { var r = t.node(n.e.v), i = r.x + r.width / 2, a = r.y, o = n.x - i, s = r.height / 2; t.setEdge(n.e, n.label), t.removeNode(e), n.label.points = [{ x: i + 2 * o / 3, y: a - s }, { x: i + 5 * o / 6, y: a - s }, { x: i + o, y: a }, { x: i + 5 * o / 6, y: a + s }, { x: i + 2 * o / 3, y: a + s }], n.label.x = n.x, n.label.y = n.y } })) }(t) })), e(" removeBorderNodes", (function() { ! function(t) { r.forEach(t.nodes(), (function(e) { if (t.children(e).length) { var n = t.node(e), i = t.node(n.borderTop), a = t.node(n.borderBottom), o = t.node(r.last(n.borderLeft)), s = t.node(r.last(n.borderRight)); n.width = Math.abs(s.x - o.x), n.height = Math.abs(a.y - i.y), n.x = o.x + n.width / 2, n.y = i.y + n.height / 2 } })), r.forEach(t.nodes(), (function(e) { "border" === t.node(e).dummy && t.removeNode(e) })) }(t) })), e(" normalize.undo", (function() { a.undo(t) })), e(" fixupEdgeLabelCoords", (function() { ! function(t) { r.forEach(t.edges(), (function(e) { var n = t.edge(e); if (r.has(n, "x")) switch ("l" !== n.labelpos && "r" !== n.labelpos || (n.width -= n.labeloffset), n.labelpos) { case "l": n.x -= n.width / 2 + n.labeloffset; break; case "r": n.x += n.width / 2 + n.labeloffset } })) }(t) })), e(" undoCoordinateSystem", (function() { h.undo(t) })), e(" translateGraph", (function() { ! function(t) { var e = Number.POSITIVE_INFINITY, n = 0, i = Number.POSITIVE_INFINITY, a = 0, o = t.graph(), s = o.marginx || 0, u = o.marginy || 0; function c(t) { var r = t.x, o = t.y, s = t.width, u = t.height; e = Math.min(e, r - s / 2), n = Math.max(n, r + s / 2), i = Math.min(i, o - u / 2), a = Math.max(a, o + u / 2) } r.forEach(t.nodes(), (function(e) { c(t.node(e)) })), r.forEach(t.edges(), (function(e) { var n = t.edge(e); r.has(n, "x") && c(n) })), e -= s, i -= u, r.forEach(t.nodes(), (function(n) { var r = t.node(n); r.x -= e, r.y -= i })), r.forEach(t.edges(), (function(n) { var a = t.edge(n); r.forEach(a.points, (function(t) { t.x -= e, t.y -= i })), r.has(a, "x") && (a.x -= e), r.has(a, "y") && (a.y -= i) })), o.width = n - e + s, o.height = a - i + u }(t) })), e(" assignNodeIntersects", (function() { ! function(t) { r.forEach(t.edges(), (function(e) { var n, r, i = t.edge(e), a = t.node(e.v), o = t.node(e.w); i.points ? (n = i.points[0], r = i.points[i.points.length - 1]) : (i.points = [], n = o, r = a), i.points.unshift(g.intersectRect(a, n)), i.points.push(g.intersectRect(o, r)) })) }(t) })), e(" reversePoints", (function() { ! function(t) { r.forEach(t.edges(), (function(e) { var n = t.edge(e); n.reversed && n.points.reverse() })) }(t) })), e(" acyclic.undo", (function() { i.undo(t) })) }(e, n) })), n(" updateInputGraph", (function() { ! function(t, e) { r.forEach(t.nodes(), (function(n) { var r = t.node(n), i = e.node(n); r && (r.x = i.x, r.y = i.y, e.children(n).length && (r.width = i.width, r.height = i.height)) })), r.forEach(t.edges(), (function(n) { var i = t.edge(n), a = e.edge(n); i.points = a.points, r.has(a, "x") && (i.x = a.x, i.y = a.y) })), t.graph().width = e.graph().width, t.graph().height = e.graph().height }(t, e) })) })) }; var b = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"], v = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }, m = ["acyclicer", "ranker", "rankdir", "align"], _ = ["width", "height"], w = { width: 0, height: 0 }, x = ["minlen", "weight", "width", "height", "labeloffset"], k = { minlen: 1, weight: 1, width: 0, height: 0, labeloffset: 10, labelpos: "r" }, E = ["labelpos"]; function A(t, e) { return r.mapValues(r.pick(t, e), Number) } function S(t) { var e = {}; return r.forEach(t, (function(t, n) { e[n.toLowerCase()] = t })), e } }, function(t, e, n) { var r = n(130), i = 1, a = 4; t.exports = function(t) { return r(t, i | a) } }, function(t, e, n) { var r = n(352)(n(353)); t.exports = r }, function(t, e, n) { var r = n(24), i = n(23), a = n(27); t.exports = function(t) { return function(e, n, o) { var s = Object(e); if (!i(e)) { var u = r(n, 3); e = a(e), n = function(t) { return u(s[t], t, s) } } var c = t(e, n, o); return c > -1 ? s[u ? e[c] : c] : void 0 } } }, function(t, e, n) { var r = n(167), i = n(24), a = n(354), o = Math.max; t.exports = function(t, e, n) { var s = null == t ? 0 : t.length; if (!s) return -1; var u = null == n ? 0 : a(n); return u < 0 && (u = o(s + u, 0)), r(t, i(e, 3), u) } }, function(t, e, n) { var r = n(177); t.exports = function(t) { var e = r(t), n = e % 1; return e == e ? n ? e - n : e : 0 } }, function(t, e, n) { var r = n(14), i = n(42), a = NaN, o = /^\s+|\s+$/g, s = /^[-+]0x[0-9a-f]+$/i, u = /^0b[01]+$/i, c = /^0o[0-7]+$/i, f = parseInt; t.exports = function(t) { if ("number" == typeof t) return t; if (i(t)) return a; if (r(t)) { var e = "function" == typeof t.valueOf ? t.valueOf() : t; t = r(e) ? e + "" : e } if ("string" != typeof t) return 0 === t ? t : +t; t = t.replace(o, ""); var n = u.test(t); return n || c.test(t) ? f(t.slice(2), n ? 2 : 8) : s.test(t) ? a : +t } }, function(t, e, n) { var r = n(102), i = n(149), a = n(40); t.exports = function(t, e) { return null == t ? t : r(t, i(e), a) } }, function(t, e) { t.exports = function(t) { var e = null == t ? 0 : t.length; return e ? t[e - 1] : void 0 } }, function(t, e, n) { var r = n(67), i = n(101), a = n(24); t.exports = function(t, e) { var n = {}; return e = a(e, 3), i(t, (function(t, i, a) { r(n, i, e(t, i, a)) })), n } }, function(t, e, n) { var r = n(108), i = n(360), a = n(34); t.exports = function(t) { return t && t.length ? r(t, a, i) : void 0 } }, function(t, e) { t.exports = function(t, e) { return t > e } }, function(t, e, n) { var r = n(362), i = n(365)((function(t, e, n) { r(t, e, n) })); t.exports = i }, function(t, e, n) { var r = n(61), i = n(179), a = n(102), o = n(363), s = n(14), u = n(40), c = n(181); t.exports = function t(e, n, f, l, h) { e !== n && a(n, (function(a, u) { if (h || (h = new r), s(a)) o(e, n, u, f, t, l, h); else { var d = l ? l(c(e, u), a, u + "", e, n, h) : void 0; void 0 === d && (d = a), i(e, u, d) } }), u) } }, function(t, e, n) { var r = n(179), i = n(136), a = n(145), o = n(137), s = n(146), u = n(50), c = n(6), f = n(168), l = n(39), h = n(37), d = n(14), p = n(180), g = n(51), y = n(181), b = n(364); t.exports = function(t, e, n, v, m, _, w) { var x = y(t, n), k = y(e, n), E = w.get(k); if (E) r(t, n, E); else { var A = _ ? _(x, k, n + "", t, e, w) : void 0, S = void 0 === A; if (S) { var M = c(k), T = !M && l(k), D = !M && !T && g(k); A = k, M || T || D ? c(x) ? A = x : f(x) ? A = o(x) : T ? (S = !1, A = i(k, !0)) : D ? (S = !1, A = a(k, !0)) : A = [] : p(k) || u(k) ? (A = x, u(x) ? A = b(x) : d(x) && !h(x) || (A = s(k))) : S = !1 } S && (w.set(k, A), m(A, k, v, _, w), w.delete(k)), r(t, n, A) } } }, function(t, e, n) { var r = n(49), i = n(40); t.exports = function(t) { return r(t, i(t)) } }, function(t, e, n) { var r = n(75), i = n(76); t.exports = function(t) { return r((function(e, n) { var r = -1, a = n.length, o = a > 1 ? n[a - 1] : void 0, s = a > 2 ? n[2] : void 0; for (o = t.length > 3 && "function" == typeof o ? (a--, o) : void 0, s && i(n[0], n[1], s) && (o = a < 3 ? void 0 : o, a = 1), e = Object(e); ++r < a;) { var u = n[r]; u && t(e, u, r, o) } return e })) } }, function(t, e, n) { var r = n(108), i = n(182), a = n(34); t.exports = function(t) { return t && t.length ? r(t, a, i) : void 0 } }, function(t, e, n) { var r = n(108), i = n(24), a = n(182); t.exports = function(t, e) { return t && t.length ? r(t, i(e, 2), a) : void 0 } }, function(t, e, n) { var r = n(18); t.exports = function() { return r.Date.now() } }, function(t, e, n) { var r = n(370), i = n(158); t.exports = function(t, e) { return r(t, e, (function(e, n) { return i(t, n) })) } }, function(t, e, n) { var r = n(104), i = n(371), a = n(73); t.exports = function(t, e, n) { for (var o = -1, s = e.length, u = {}; ++o < s;) { var c = e[o], f = r(t, c); n(f, c) && i(u, a(c, t), f) } return u } }, function(t, e, n) { var r = n(66), i = n(73), a = n(68), o = n(14), s = n(52); t.exports = function(t, e, n, u) { if (!o(t)) return t; for (var c = -1, f = (e = i(e, t)).length, l = f - 1, h = t; null != h && ++c < f;) { var d = s(e[c]), p = n; if (c != l) { var g = h[d]; void 0 === (p = u ? u(g, d, h) : void 0) && (p = o(g) ? g : a(e[c + 1]) ? [] : {}) } r(h, d, p), h = h[d] } return t } }, function(t, e, n) { var r = n(178), i = n(165), a = n(166); t.exports = function(t) { return a(i(t, void 0, r), t + "") } }, function(t, e, n) { var r = n(374), i = n(76), a = n(177); t.exports = function(t) { return function(e, n, o) { return o && "number" != typeof o && i(e, n, o) && (n = o = void 0), e = a(e), void 0 === n ? (n = e, e = 0) : n = a(n), o = void 0 === o ? e < n ? 1 : -1 : a(o), r(e, n, o, t) } } }, function(t, e) { var n = Math.ceil, r = Math.max; t.exports = function(t, e, i, a) { for (var o = -1, s = r(n((e - t) / (i || 1)), 0), u = Array(s); s--;) u[a ? s : ++o] = t, t += i; return u } }, function(t, e, n) { var r = n(107), i = n(376), a = n(75), o = n(76), s = a((function(t, e) { if (null == t) return []; var n = e.length; return n > 1 && o(t, e[0], e[1]) ? e = [] : n > 2 && o(e[0], e[1], e[2]) && (e = [e[0]]), i(t, r(e, 1), []) })); t.exports = s }, function(t, e, n) { var r = n(74), i = n(24), a = n(163), o = n(377), s = n(69), u = n(378), c = n(34); t.exports = function(t, e, n) { var f = -1; e = r(e.length ? e : [c], s(i)); var l = a(t, (function(t, n, i) { return { criteria: r(e, (function(e) { return e(t) })), index: ++f, value: t } })); return o(l, (function(t, e) { return u(t, e, n) })) } }, function(t, e) { t.exports = function(t, e) { var n = t.length; for (t.sort(e); n--;) t[n] = t[n].value; return t } }, function(t, e, n) { var r = n(379); t.exports = function(t, e, n) { for (var i = -1, a = t.criteria, o = e.criteria, s = a.length, u = n.length; ++i < s;) { var c = r(a[i], o[i]); if (c) return i >= u ? c : c * ("desc" == n[i] ? -1 : 1) } return t.index - e.index } }, function(t, e, n) { var r = n(42); t.exports = function(t, e) { if (t !== e) { var n = void 0 !== t, i = null === t, a = t == t, o = r(t), s = void 0 !== e, u = null === e, c = e == e, f = r(e); if (!u && !f && !o && t > e || o && s && c && !u && !f || i && s && c || !n && c || !a) return 1; if (!i && !o && !f && t < e || f && n && a && !i && !o || u && n && a || !s && a || !c) return -1 } return 0 } }, function(t, e, n) { var r = n(66), i = n(381); t.exports = function(t, e) { return i(t || [], e || [], r) } }, function(t, e) { t.exports = function(t, e, n) { for (var r = -1, i = t.length, a = e.length, o = {}; ++r < i;) { var s = r < a ? e[r] : void 0; n(o, t[r], s) } return o } }, function(t, e, n) { "use strict"; var r = n(4), i = n(383); t.exports = { run: function(t) { var e = "greedy" === t.graph().acyclicer ? i(t, function(t) { return function(e) { return t.edge(e).weight } }(t)) : function(t) { var e = [], n = {}, i = {}; return r.forEach(t.nodes(), (function a(o) { if (r.has(i, o)) return; i[o] = !0, n[o] = !0, r.forEach(t.outEdges(o), (function(t) { r.has(n, t.w) ? e.push(t) : a(t.w) })), delete n[o] })), e }(t); r.forEach(e, (function(e) { var n = t.edge(e); t.removeEdge(e), n.forwardName = e.name, n.reversed = !0, t.setEdge(e.w, e.v, n, r.uniqueId("rev")) })) }, undo: function(t) { r.forEach(t.edges(), (function(e) { var n = t.edge(e); if (n.reversed) { t.removeEdge(e); var r = n.forwardName; delete n.reversed, delete n.forwardName, t.setEdge(e.w, e.v, n, r) } })) } } }, function(t, e, n) { var r = n(4), i = n(19).Graph, a = n(384); t.exports = function(t, e) { if (t.nodeCount() <= 1) return []; var n = function(t, e) { var n = new i, o = 0, s = 0; r.forEach(t.nodes(), (function(t) { n.setNode(t, { v: t, in : 0, out: 0 }) })), r.forEach(t.edges(), (function(t) { var r = n.edge(t.v, t.w) || 0, i = e(t), a = r + i; n.setEdge(t.v, t.w, a), s = Math.max(s, n.node(t.v).out += i), o = Math.max(o, n.node(t.w).in += i) })); var c = r.range(s + o + 3).map((function() { return new a })), f = o + 1; return r.forEach(n.nodes(), (function(t) { u(c, f, n.node(t)) })), { graph: n, buckets: c, zeroIdx: f } }(t, e || o), c = function(t, e, n) { var r, i = [], a = e[e.length - 1], o = e[0]; for (; t.nodeCount();) { for (; r = o.dequeue();) s(t, e, n, r); for (; r = a.dequeue();) s(t, e, n, r); if (t.nodeCount()) for (var u = e.length - 2; u > 0; --u) if (r = e[u].dequeue()) { i = i.concat(s(t, e, n, r, !0)); break } } return i }(n.graph, n.buckets, n.zeroIdx); return r.flatten(r.map(c, (function(e) { return t.outEdges(e.v, e.w) })), !0) }; var o = r.constant(1); function s(t, e, n, i, a) { var o = a ? [] : void 0; return r.forEach(t.inEdges(i.v), (function(r) { var i = t.edge(r), s = t.node(r.v); a && o.push({ v: r.v, w: r.w }), s.out -= i, u(e, n, s) })), r.forEach(t.outEdges(i.v), (function(r) { var i = t.edge(r), a = r.w, o = t.node(a); o.in -= i, u(e, n, o) })), t.removeNode(i.v), o } function u(t, e, n) { n.out ? n.in ? t[n.out - n.in + e].enqueue(n) : t[t.length - 1].enqueue(n) : t[0].enqueue(n) } }, function(t, e) { function n() { var t = {}; t._next = t._prev = t, this._sentinel = t } function r(t) { t._prev._next = t._next, t._next._prev = t._prev, delete t._next, delete t._prev } function i(t, e) { if ("_next" !== t && "_prev" !== t) return e } t.exports = n, n.prototype.dequeue = function() { var t = this._sentinel, e = t._prev; if (e !== t) return r(e), e }, n.prototype.enqueue = function(t) { var e = this._sentinel; t._prev && t._next && r(t), t._next = e._next, e._next._prev = t, e._next = t, t._prev = e }, n.prototype.toString = function() { for (var t = [], e = this._sentinel, n = e._prev; n !== e;) t.push(JSON.stringify(n, i)), n = n._prev; return "[" + t.join(", ") + "]" } }, function(t, e, n) { "use strict"; var r = n(4), i = n(10); t.exports = { run: function(t) { t.graph().dummyChains = [], r.forEach(t.edges(), (function(e) { ! function(t, e) { var n, r, a, o = e.v, s = t.node(o).rank, u = e.w, c = t.node(u).rank, f = e.name, l = t.edge(e), h = l.labelRank; if (c === s + 1) return; for (t.removeEdge(e), a = 0, ++s; s < c; ++a, ++s) l.points = [], r = { width: 0, height: 0, edgeLabel: l, edgeObj: e, rank: s }, n = i.addDummyNode(t, "edge", r, "_d"), s === h && (r.width = l.width, r.height = l.height, r.dummy = "edge-label", r.labelpos = l.labelpos), t.setEdge(o, n, { weight: l.weight }, f), 0 === a && t.graph().dummyChains.push(n), o = n; t.setEdge(o, u, { weight: l.weight }, f) }(t, e) })) }, undo: function(t) { r.forEach(t.graph().dummyChains, (function(e) { var n, r = t.node(e), i = r.edgeLabel; for (t.setEdge(r.edgeObj, i); r.dummy;) n = t.successors(e)[0], t.removeNode(e), i.points.push({ x: r.x, y: r.y }), "edge-label" === r.dummy && (i.x = r.x, i.y = r.y, i.width = r.width, i.height = r.height), e = n, r = t.node(e) })) } } }, function(t, e, n) { "use strict"; var r = n(77).longestPath, i = n(186), a = n(387); t.exports = function(t) { switch (t.graph().ranker) { case "network-simplex": s(t); break; case "tight-tree": ! function(t) { r(t), i(t) }(t); break; case "longest-path": o(t); break; default: s(t) } }; var o = r; function s(t) { a(t) } }, function(t, e, n) { "use strict"; var r = n(4), i = n(186), a = n(77).slack, o = n(77).longestPath, s = n(19).alg.preorder, u = n(19).alg.postorder, c = n(10).simplify; function f(t) { t = c(t), o(t); var e, n = i(t); for (d(n), l(n, t); e = p(n);) y(n, t, e, g(n, t, e)) } function l(t, e) { var n = u(t, t.nodes()); n = n.slice(0, n.length - 1), r.forEach(n, (function(n) { ! function(t, e, n) { var r = t.node(n).parent; t.edge(n, r).cutvalue = h(t, e, n) }(t, e, n) })) } function h(t, e, n) { var i = t.node(n).parent, a = !0, o = e.edge(n, i), s = 0; return o || (a = !1, o = e.edge(i, n)), s = o.weight, r.forEach(e.nodeEdges(n), (function(r) { var o, u, c = r.v === n, f = c ? r.w : r.v; if (f !== i) { var l = c === a, h = e.edge(r).weight; if (s += l ? h : -h, o = n, u = f, t.hasEdge(o, u)) { var d = t.edge(n, f).cutvalue; s += l ? -d : d } } })), s } function d(t, e) { arguments.length < 2 && (e = t.nodes()[0]), function t(e, n, i, a, o) { var s = i, u = e.node(a); n[a] = !0, r.forEach(e.neighbors(a), (function(o) { r.has(n, o) || (i = t(e, n, i, o, a)) })), u.low = s, u.lim = i++, o ? u.parent = o : delete u.parent; return i }(t, {}, 1, e) } function p(t) { return r.find(t.edges(), (function(e) { return t.edge(e).cutvalue < 0 })) } function g(t, e, n) { var i = n.v, o = n.w; e.hasEdge(i, o) || (i = n.w, o = n.v); var s = t.node(i), u = t.node(o), c = s, f = !1; s.lim > u.lim && (c = u, f = !0); var l = r.filter(e.edges(), (function(e) { return f === b(t, t.node(e.v), c) && f !== b(t, t.node(e.w), c) })); return r.minBy(l, (function(t) { return a(e, t) })) } function y(t, e, n, i) { var a = n.v, o = n.w; t.removeEdge(a, o), t.setEdge(i.v, i.w, {}), d(t), l(t, e), function(t, e) { var n = r.find(t.nodes(), (function(t) { return !e.node(t).parent })), i = s(t, n); i = i.slice(1), r.forEach(i, (function(n) { var r = t.node(n).parent, i = e.edge(n, r), a = !1; i || (i = e.edge(r, n), a = !0), e.node(n).rank = e.node(r).rank + (a ? i.minlen : -i.minlen) })) }(t, e) } function b(t, e, n) { return n.low <= e.lim && e.lim <= n.lim } t.exports = f, f.initLowLimValues = d, f.initCutValues = l, f.calcCutValue = h, f.leaveEdge = p, f.enterEdge = g, f.exchangeEdges = y }, function(t, e, n) { var r = n(4); t.exports = function(t) { var e = function(t) { var e = {}, n = 0; return r.forEach(t.children(), (function i(a) { var o = n; r.forEach(t.children(a), i), e[a] = { low: o, lim: n++ } })), e }(t); r.forEach(t.graph().dummyChains, (function(n) { for (var r = t.node(n), i = r.edgeObj, a = function(t, e, n, r) { var i, a, o = [], s = [], u = Math.min(e[n].low, e[r].low), c = Math.max(e[n].lim, e[r].lim); i = n; do { i = t.parent(i), o.push(i) } while (i && (e[i].low > u || c > e[i].lim)); a = i, i = r; for (; (i = t.parent(i)) !== a;) s.push(i); return { path: o.concat(s.reverse()), lca: a } }(t, e, i.v, i.w), o = a.path, s = a.lca, u = 0, c = o[u], f = !0; n !== i.w;) { if (r = t.node(n), f) { for (; (c = o[u]) !== s && t.node(c).maxRank < r.rank;) u++; c === s && (f = !1) } if (!f) { for (; u < o.length - 1 && t.node(c = o[u + 1]).minRank <= r.rank;) u++; c = o[u] } t.setParent(n, c), n = t.successors(n)[0] } })) } }, function(t, e, n) { var r = n(4), i = n(10); t.exports = { run: function(t) { var e = i.addDummyNode(t, "root", {}, "_root"), n = function(t) { var e = {}; return r.forEach(t.children(), (function(n) { ! function n(i, a) { var o = t.children(i); o && o.length && r.forEach(o, (function(t) { n(t, a + 1) })); e[i] = a }(n, 1) })), e }(t), a = r.max(r.values(n)) - 1, o = 2 * a + 1; t.graph().nestingRoot = e, r.forEach(t.edges(), (function(e) { t.edge(e).minlen *= o })); var s = function(t) { return r.reduce(t.edges(), (function(e, n) { return e + t.edge(n).weight }), 0) }(t) + 1; r.forEach(t.children(), (function(u) { ! function t(e, n, a, o, s, u, c) { var f = e.children(c); if (!f.length) return void(c !== n && e.setEdge(n, c, { weight: 0, minlen: a })); var l = i.addBorderNode(e, "_bt"), h = i.addBorderNode(e, "_bb"), d = e.node(c); e.setParent(l, c), d.borderTop = l, e.setParent(h, c), d.borderBottom = h, r.forEach(f, (function(r) { t(e, n, a, o, s, u, r); var i = e.node(r), f = i.borderTop ? i.borderTop : r, d = i.borderBottom ? i.borderBottom : r, p = i.borderTop ? o : 2 * o, g = f !== d ? 1 : s - u[c] + 1; e.setEdge(l, f, { weight: p, minlen: g, nestingEdge: !0 }), e.setEdge(d, h, { weight: p, minlen: g, nestingEdge: !0 }) })), e.parent(c) || e.setEdge(n, l, { weight: 0, minlen: s + u[c] }) }(t, e, o, s, a, n, u) })), t.graph().nodeRankFactor = o }, cleanup: function(t) { var e = t.graph(); t.removeNode(e.nestingRoot), delete e.nestingRoot, r.forEach(t.edges(), (function(e) { t.edge(e).nestingEdge && t.removeEdge(e) })) } } }, function(t, e, n) { var r = n(4), i = n(10); function a(t, e, n, r, a, o) { var s = { width: 0, height: 0, rank: o, borderType: e }, u = a[e][o - 1], c = i.addDummyNode(t, "border", s, n); a[e][o] = c, t.setParent(c, r), u && t.setEdge(u, c, { weight: 1 }) } t.exports = function(t) { r.forEach(t.children(), (function e(n) { var i = t.children(n), o = t.node(n); if (i.length && r.forEach(i, e), r.has(o, "minRank")) { o.borderLeft = [], o.borderRight = []; for (var s = o.minRank, u = o.maxRank + 1; s < u; ++s) a(t, "borderLeft", "_bl", n, o, s), a(t, "borderRight", "_br", n, o, s) } })) } }, function(t, e, n) { "use strict"; var r = n(4); function i(t) { r.forEach(t.nodes(), (function(e) { a(t.node(e)) })), r.forEach(t.edges(), (function(e) { a(t.edge(e)) })) } function a(t) { var e = t.width; t.width = t.height, t.height = e } function o(t) { t.y = -t.y } function s(t) { var e = t.x; t.x = t.y, t.y = e } t.exports = { adjust: function(t) { var e = t.graph().rankdir.toLowerCase(); "lr" !== e && "rl" !== e || i(t) }, undo: function(t) { var e = t.graph().rankdir.toLowerCase(); "bt" !== e && "rl" !== e || function(t) { r.forEach(t.nodes(), (function(e) { o(t.node(e)) })), r.forEach(t.edges(), (function(e) { var n = t.edge(e); r.forEach(n.points, o), r.has(n, "y") && o(n) })) }(t); "lr" !== e && "rl" !== e || (! function(t) { r.forEach(t.nodes(), (function(e) { s(t.node(e)) })), r.forEach(t.edges(), (function(e) { var n = t.edge(e); r.forEach(n.points, s), r.has(n, "x") && s(n) })) }(t), i(t)) } } }, function(t, e, n) { "use strict"; var r = n(4), i = n(393), a = n(394), o = n(395), s = n(399), u = n(400), c = n(19).Graph, f = n(10); function l(t, e, n) { return r.map(e, (function(e) { return s(t, e, n) })) } function h(t, e) { var n = new c; r.forEach(t, (function(t) { var i = t.graph().root, a = o(t, i, n, e); r.forEach(a.vs, (function(e, n) { t.node(e).order = n })), u(t, n, a.vs) })) } function d(t, e) { r.forEach(e, (function(e) { r.forEach(e, (function(e, n) { t.node(e).order = n })) })) } t.exports = function(t) { var e = f.maxRank(t), n = l(t, r.range(1, e + 1), "inEdges"), o = l(t, r.range(e - 1, -1, -1), "outEdges"), s = i(t); d(t, s); for (var u, c = Number.POSITIVE_INFINITY, p = 0, g = 0; g < 4; ++p, ++g) { h(p % 2 ? n : o, p % 4 >= 2), s = f.buildLayerMatrix(t); var y = a(t, s); y < c && (g = 0, u = r.cloneDeep(s), c = y) } d(t, u) } }, function(t, e, n) { "use strict"; var r = n(4); t.exports = function(t) { var e = {}, n = r.filter(t.nodes(), (function(e) { return !t.children(e).length })), i = r.max(r.map(n, (function(e) { return t.node(e).rank }))), a = r.map(r.range(i + 1), (function() { return [] })); var o = r.sortBy(n, (function(e) { return t.node(e).rank })); return r.forEach(o, (function n(i) { if (r.has(e, i)) return; e[i] = !0; var o = t.node(i); a[o.rank].push(i), r.forEach(t.successors(i), n) })), a } }, function(t, e, n) { "use strict"; var r = n(4); function i(t, e, n) { for (var i = r.zipObject(n, r.map(n, (function(t, e) { return e }))), a = r.flatten(r.map(e, (function(e) { return r.sortBy(r.map(t.outEdges(e), (function(e) { return { pos: i[e.w], weight: t.edge(e).weight } })), "pos") })), !0), o = 1; o < n.length;) o <<= 1; var s = 2 * o - 1; o -= 1; var u = r.map(new Array(s), (function() { return 0 })), c = 0; return r.forEach(a.forEach((function(t) { var e = t.pos + o; u[e] += t.weight; for (var n = 0; e > 0;) e % 2 && (n += u[e + 1]), u[e = e - 1 >> 1] += t.weight; c += t.weight * n }))), c } t.exports = function(t, e) { for (var n = 0, r = 1; r < e.length; ++r) n += i(t, e[r - 1], e[r]); return n } }, function(t, e, n) { var r = n(4), i = n(396), a = n(397), o = n(398); t.exports = function t(e, n, s, u) { var c = e.children(n), f = e.node(n), l = f ? f.borderLeft : void 0, h = f ? f.borderRight : void 0, d = {}; l && (c = r.filter(c, (function(t) { return t !== l && t !== h }))); var p = i(e, c); r.forEach(p, (function(n) { if (e.children(n.v).length) { var i = t(e, n.v, s, u); d[n.v] = i, r.has(i, "barycenter") && (a = n, o = i, r.isUndefined(a.barycenter) ? (a.barycenter = o.barycenter, a.weight = o.weight) : (a.barycenter = (a.barycenter * a.weight + o.barycenter * o.weight) / (a.weight + o.weight), a.weight += o.weight)) } var a, o })); var g = a(p, s); ! function(t, e) { r.forEach(t, (function(t) { t.vs = r.flatten(t.vs.map((function(t) { return e[t] ? e[t].vs : t })), !0) })) }(g, d); var y = o(g, u); if (l && (y.vs = r.flatten([l, y.vs, h], !0), e.predecessors(l).length)) { var b = e.node(e.predecessors(l)[0]), v = e.node(e.predecessors(h)[0]); r.has(y, "barycenter") || (y.barycenter = 0, y.weight = 0), y.barycenter = (y.barycenter * y.weight + b.order + v.order) / (y.weight + 2), y.weight += 2 } return y } }, function(t, e, n) { var r = n(4); t.exports = function(t, e) { return r.map(e, (function(e) { var n = t.inEdges(e); if (n.length) { var i = r.reduce(n, (function(e, n) { var r = t.edge(n), i = t.node(n.v); return { sum: e.sum + r.weight * i.order, weight: e.weight + r.weight } }), { sum: 0, weight: 0 }); return { v: e, barycenter: i.sum / i.weight, weight: i.weight } } return { v: e } })) } }, function(t, e, n) { "use strict"; var r = n(4); t.exports = function(t, e) { var n = {}; return r.forEach(t, (function(t, e) { var i = n[t.v] = { indegree: 0, in : [], out: [], vs: [t.v], i: e }; r.isUndefined(t.barycenter) || (i.barycenter = t.barycenter, i.weight = t.weight) })), r.forEach(e.edges(), (function(t) { var e = n[t.v], i = n[t.w]; r.isUndefined(e) || r.isUndefined(i) || (i.indegree++, e.out.push(n[t.w])) })), function(t) { var e = []; function n(t) { return function(e) { e.merged || (r.isUndefined(e.barycenter) || r.isUndefined(t.barycenter) || e.barycenter >= t.barycenter) && function(t, e) { var n = 0, r = 0; t.weight && (n += t.barycenter * t.weight, r += t.weight); e.weight && (n += e.barycenter * e.weight, r += e.weight); t.vs = e.vs.concat(t.vs), t.barycenter = n / r, t.weight = r, t.i = Math.min(e.i, t.i), e.merged = !0 }(t, e) } } function i(e) { return function(n) { n.in.push(e), 0 == --n.indegree && t.push(n) } } for (; t.length;) { var a = t.pop(); e.push(a), r.forEach(a.in.reverse(), n(a)), r.forEach(a.out, i(a)) } return r.map(r.filter(e, (function(t) { return !t.merged })), (function(t) { return r.pick(t, ["vs", "i", "barycenter", "weight"]) })) }(r.filter(n, (function(t) { return !t.indegree }))) } }, function(t, e, n) { var r = n(4), i = n(10); function a(t, e, n) { for (var i; e.length && (i = r.last(e)).i <= n;) e.pop(), t.push(i.vs), n++; return n } t.exports = function(t, e) { var n = i.partition(t, (function(t) { return r.has(t, "barycenter") })), o = n.lhs, s = r.sortBy(n.rhs, (function(t) { return -t.i })), u = [], c = 0, f = 0, l = 0; o.sort((h = !!e, function(t, e) { return t.barycenter < e.barycenter ? -1 : t.barycenter > e.barycenter ? 1 : h ? e.i - t.i : t.i - e.i })), l = a(u, s, l), r.forEach(o, (function(t) { l += t.vs.length, u.push(t.vs), c += t.barycenter * t.weight, f += t.weight, l = a(u, s, l) })); var h; var d = { vs: r.flatten(u, !0) }; f && (d.barycenter = c / f, d.weight = f); return d } }, function(t, e, n) { var r = n(4), i = n(19).Graph; t.exports = function(t, e, n) { var a = function(t) { var e; for (; t.hasNode(e = r.uniqueId("_root"));); return e }(t), o = new i({ compound: !0 }).setGraph({ root: a }).setDefaultNodeLabel((function(e) { return t.node(e) })); return r.forEach(t.nodes(), (function(i) { var s = t.node(i), u = t.parent(i); (s.rank === e || s.minRank <= e && e <= s.maxRank) && (o.setNode(i), o.setParent(i, u || a), r.forEach(t[n](i), (function(e) { var n = e.v === i ? e.w : e.v, a = o.edge(n, i), s = r.isUndefined(a) ? 0 : a.weight; o.setEdge(n, i, { weight: t.edge(e).weight + s }) })), r.has(s, "minRank") && o.setNode(i, { borderLeft: s.borderLeft[e], borderRight: s.borderRight[e] })) })), o } }, function(t, e, n) { var r = n(4); t.exports = function(t, e, n) { var i, a = {}; r.forEach(n, (function(n) { for (var r, o, s = t.parent(n); s;) { if ((r = t.parent(s)) ? (o = a[r], a[r] = s) : (o = i, i = s), o && o !== s) return void e.setEdge(o, s); s = r } })) } }, function(t, e, n) { "use strict"; var r = n(4), i = n(10), a = n(402).positionX; t.exports = function(t) { (function(t) { var e = i.buildLayerMatrix(t), n = t.graph().ranksep, a = 0; r.forEach(e, (function(e) { var i = r.max(r.map(e, (function(e) { return t.node(e).height }))); r.forEach(e, (function(e) { t.node(e).y = a + i / 2 })), a += i + n })) })(t = i.asNonCompoundGraph(t)), r.forEach(a(t), (function(e, n) { t.node(n).x = e })) } }, function(t, e, n) { "use strict"; var r = n(4), i = n(19).Graph, a = n(10); function o(t, e) { var n = {}; return r.reduce(e, (function(e, i) { var a = 0, o = 0, s = e.length, c = r.last(i); return r.forEach(i, (function(e, f) { var l = function(t, e) { if (t.node(e).dummy) return r.find(t.predecessors(e), (function(e) { return t.node(e).dummy })) }(t, e), h = l ? t.node(l).order : s; (l || e === c) && (r.forEach(i.slice(o, f + 1), (function(e) { r.forEach(t.predecessors(e), (function(r) { var i = t.node(r), o = i.order; !(o < a || h < o) || i.dummy && t.node(e).dummy || u(n, r, e) })) })), o = f + 1, a = h) })), i })), n } function s(t, e) { var n = {}; function i(e, i, a, o, s) { var c; r.forEach(r.range(i, a), (function(i) { c = e[i], t.node(c).dummy && r.forEach(t.predecessors(c), (function(e) { var r = t.node(e); r.dummy && (r.order < o || r.order > s) && u(n, e, c) })) })) } return r.reduce(e, (function(e, n) { var a, o = -1, s = 0; return r.forEach(n, (function(r, u) { if ("border" === t.node(r).dummy) { var c = t.predecessors(r); c.length && (a = t.node(c[0]).order, i(n, s, u, o, a), s = u, o = a) } i(n, s, n.length, a, e.length) })), n })), n } function u(t, e, n) { if (e > n) { var r = e; e = n, n = r } var i = t[e]; i || (t[e] = i = {}), i[n] = !0 } function c(t, e, n) { if (e > n) { var i = e; e = n, n = i } return r.has(t[e], n) } function f(t, e, n, i) { var a = {}, o = {}, s = {}; return r.forEach(e, (function(t) { r.forEach(t, (function(t, e) { a[t] = t, o[t] = t, s[t] = e })) })), r.forEach(e, (function(t) { var e = -1; r.forEach(t, (function(t) { var u = i(t); if (u.length) for (var f = ((u = r.sortBy(u, (function(t) { return s[t] }))).length - 1) / 2, l = Math.floor(f), h = Math.ceil(f); l <= h; ++l) { var d = u[l]; o[t] === t && e < s[d] && !c(n, t, d) && (o[d] = t, o[t] = a[t] = a[d], e = s[d]) } })) })), { root: a, align: o } } function l(t, e, n, a, o) { var s = {}, u = function(t, e, n, a) { var o = new i, s = t.graph(), u = function(t, e, n) { return function(i, a, o) { var s, u = i.node(a), c = i.node(o), f = 0; if (f += u.width / 2, r.has(u, "labelpos")) switch (u.labelpos.toLowerCase()) { case "l": s = -u.width / 2; break; case "r": s = u.width / 2 } if (s && (f += n ? s : -s), s = 0, f += (u.dummy ? e : t) / 2, f += (c.dummy ? e : t) / 2, f += c.width / 2, r.has(c, "labelpos")) switch (c.labelpos.toLowerCase()) { case "l": s = c.width / 2; break; case "r": s = -c.width / 2 } return s && (f += n ? s : -s), s = 0, f } }(s.nodesep, s.edgesep, a); return r.forEach(e, (function(e) { var i; r.forEach(e, (function(e) { var r = n[e]; if (o.setNode(r), i) { var a = n[i], s = o.edge(a, r); o.setEdge(a, r, Math.max(u(t, e, i), s || 0)) } i = e })) })), o }(t, e, n, o), c = o ? "borderLeft" : "borderRight"; function f(t, e) { for (var n = u.nodes(), r = n.pop(), i = {}; r;) i[r] ? t(r) : (i[r] = !0, n.push(r), n = n.concat(e(r))), r = n.pop() } return f((function(t) { s[t] = u.inEdges(t).reduce((function(t, e) { return Math.max(t, s[e.v] + u.edge(e)) }), 0) }), u.predecessors.bind(u)), f((function(e) { var n = u.outEdges(e).reduce((function(t, e) { return Math.min(t, s[e.w] - u.edge(e)) }), Number.POSITIVE_INFINITY), r = t.node(e); n !== Number.POSITIVE_INFINITY && r.borderType !== c && (s[e] = Math.max(s[e], n)) }), u.successors.bind(u)), r.forEach(a, (function(t) { s[t] = s[n[t]] })), s } function h(t, e) { return r.minBy(r.values(e), (function(e) { var n = Number.NEGATIVE_INFINITY, i = Number.POSITIVE_INFINITY; return r.forIn(e, (function(e, r) { var a = function(t, e) { return t.node(e).width }(t, r) / 2; n = Math.max(e + a, n), i = Math.min(e - a, i) })), n - i })) } function d(t, e) { var n = r.values(e), i = r.min(n), a = r.max(n); r.forEach(["u", "d"], (function(n) { r.forEach(["l", "r"], (function(o) { var s, u = n + o, c = t[u]; if (c !== e) { var f = r.values(c); (s = "l" === o ? i - r.min(f) : a - r.max(f)) && (t[u] = r.mapValues(c, (function(t) { return t + s }))) } })) })) } function p(t, e) { return r.mapValues(t.ul, (function(n, i) { if (e) return t[e.toLowerCase()][i]; var a = r.sortBy(r.map(t, i)); return (a[1] + a[2]) / 2 })) } t.exports = { positionX: function(t) { var e, n = a.buildLayerMatrix(t), i = r.merge(o(t, n), s(t, n)), u = {}; r.forEach(["u", "d"], (function(a) { e = "u" === a ? n : r.values(n).reverse(), r.forEach(["l", "r"], (function(n) { "r" === n && (e = r.map(e, (function(t) { return r.values(t).reverse() }))); var o = ("u" === a ? t.predecessors : t.successors).bind(t), s = f(t, e, i, o), c = l(t, e, s.root, s.align, "r" === n); "r" === n && (c = r.mapValues(c, (function(t) { return -t }))), u[a + n] = c })) })); var c = h(t, u); return d(u, c), p(u, t.graph().align) }, findType1Conflicts: o, findType2Conflicts: s, addConflict: u, hasConflict: c, verticalAlignment: f, horizontalCompaction: l, alignCoordinates: d, findSmallestWidthAlignment: h, balance: p } }, function(t, e, n) { var r = n(4), i = n(10), a = n(19).Graph; t.exports = { debugOrdering: function(t) { var e = i.buildLayerMatrix(t), n = new a({ compound: !0, multigraph: !0 }).setGraph({}); return r.forEach(t.nodes(), (function(e) { n.setNode(e, { label: e }), n.setParent(e, "layer" + t.node(e).rank) })), r.forEach(t.edges(), (function(t) { n.setEdge(t.v, t.w, {}, t.name) })), r.forEach(e, (function(t, e) { var i = "layer" + e; n.setNode(i, { rank: "same" }), r.reduce(t, (function(t, e) { return n.setEdge(t, e, { style: "invis" }), e })) })), n } } }, function(t, e) { t.exports = "0.8.5" }, function(t, e, n) { t.exports = { node: n(187), circle: n(188), ellipse: n(109), polygon: n(189), rect: n(190) } }, function(t, e) { function n(t, e) { return t * e > 0 } t.exports = function(t, e, r, i) { var a, o, s, u, c, f, l, h, d, p, g, y, b; if (a = e.y - t.y, s = t.x - e.x, c = e.x * t.y - t.x * e.y, d = a * r.x + s * r.y + c, p = a * i.x + s * i.y + c, 0 !== d && 0 !== p && n(d, p)) return; if (o = i.y - r.y, u = r.x - i.x, f = i.x * r.y - r.x * i.y, l = o * t.x + u * t.y + f, h = o * e.x + u * e.y + f, 0 !== l && 0 !== h && n(l, h)) return; if (0 === (g = a * u - o * s)) return; return y = Math.abs(g / 2), { x: (b = s * f - u * c) < 0 ? (b - y) / g : (b + y) / g, y: (b = o * c - a * f) < 0 ? (b - y) / g : (b + y) / g } } }, function(t, e, n) { var r = n(43), i = n(30), a = n(175).layout; t.exports = function() { var t = n(408), e = n(411), i = n(412), c = n(413), f = n(414), l = n(415), h = n(416), d = n(417), p = n(418), g = function(n, g) { ! function(t) { t.nodes().forEach((function(e) { var n = t.node(e); r.has(n, "label") || t.children(e).length || (n.label = e), r.has(n, "paddingX") && r.defaults(n, { paddingLeft: n.paddingX, paddingRight: n.paddingX }), r.has(n, "paddingY") && r.defaults(n, { paddingTop: n.paddingY, paddingBottom: n.paddingY }), r.has(n, "padding") && r.defaults(n, { paddingLeft: n.padding, paddingRight: n.padding, paddingTop: n.padding, paddingBottom: n.padding }), r.defaults(n, o), r.each(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], (function(t) { n[t] = Number(n[t]) })), r.has(n, "width") && (n._prevWidth = n.width), r.has(n, "height") && (n._prevHeight = n.height) })), t.edges().forEach((function(e) { var n = t.edge(e); r.has(n, "label") || (n.label = ""), r.defaults(n, s) })) }(g); var y = u(n, "output"), b = u(y, "clusters"), v = u(y, "edgePaths"), m = i(u(y, "edgeLabels"), g), _ = t(u(y, "nodes"), g, d); a(g), f(_, g), l(m, g), c(v, g, p); var w = e(b, g); h(w, g), function(t) { r.each(t.nodes(), (function(e) { var n = t.node(e); r.has(n, "_prevWidth") ? n.width = n._prevWidth : delete n.width, r.has(n, "_prevHeight") ? n.height = n._prevHeight : delete n.height, delete n._prevWidth, delete n._prevHeight })) }(g) }; return g.createNodes = function(e) { return arguments.length ? (t = e, g) : t }, g.createClusters = function(t) { return arguments.length ? (e = t, g) : e }, g.createEdgeLabels = function(t) { return arguments.length ? (i = t, g) : i }, g.createEdgePaths = function(t) { return arguments.length ? (c = t, g) : c }, g.shapes = function(t) { return arguments.length ? (d = t, g) : d }, g.arrows = function(t) { return arguments.length ? (p = t, g) : p }, g }; var o = { paddingLeft: 10, paddingRight: 10, paddingTop: 10, paddingBottom: 10, rx: 0, ry: 0, shape: "rect" }, s = { arrowhead: "normal", curve: i.curveLinear }; function u(t, e) { var n = t.select("g." + e); return n.empty() && (n = t.append("g").attr("class", e)), n } }, function(t, e, n) { "use strict"; var r = n(43), i = n(110), a = n(15), o = n(30); t.exports = function(t, e, n) { var s, u = e.nodes().filter((function(t) { return !a.isSubgraph(e, t) })), c = t.selectAll("g.node").data(u, (function(t) { return t })).classed("update", !0); c.exit().remove(), c.enter().append("g").attr("class", "node").style("opacity", 0), (c = t.selectAll("g.node")).each((function(t) { var s = e.node(t), u = o.select(this); a.applyClass(u, s.class, (u.classed("update") ? "update " : "") + "node"), u.select("g.label").remove(); var c = u.append("g").attr("class", "label"), f = i(c, s), l = n[s.shape], h = r.pick(f.node().getBBox(), "width", "height"); s.elem = this, s.id && u.attr("id", s.id), s.labelId && c.attr("id", s.labelId), r.has(s, "width") && (h.width = s.width), r.has(s, "height") && (h.height = s.height), h.width += s.paddingLeft + s.paddingRight, h.height += s.paddingTop + s.paddingBottom, c.attr("transform", "translate(" + (s.paddingLeft - s.paddingRight) / 2 + "," + (s.paddingTop - s.paddingBottom) / 2 + ")"); var d = o.select(this); d.select(".label-container").remove(); var p = l(d, h, s).classed("label-container", !0); a.applyStyle(p, s.style); var g = p.node().getBBox(); s.width = g.width, s.height = g.height })), s = c.exit ? c.exit() : c.selectAll(null); return a.applyTransition(s, e).style("opacity", 0).remove(), c } }, function(t, e, n) { var r = n(15); t.exports = function(t, e) { for (var n = t.append("text"), i = function(t) { for (var e, n = "", r = !1, i = 0; i < t.length; ++i) if (e = t[i], r) { switch (e) { case "n": n += "\n"; break; default: n += e } r = !1 } else "\\" === e ? r = !0 : n += e; return n }(e.label).split("\n"), a = 0; a < i.length; a++) n.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(i[a]); return r.applyStyle(n, e.labelStyle), n } }, function(t, e, n) { var r = n(15); t.exports = function(t, e) { var n = t; return n.node().appendChild(e.label), r.applyStyle(n, e.labelStyle), n } }, function(t, e, n) { var r = n(15), i = n(30), a = n(110); t.exports = function(t, e) { var n, o = e.nodes().filter((function(t) { return r.isSubgraph(e, t) })), s = t.selectAll("g.cluster").data(o, (function(t) { return t })); s.selectAll("*").remove(), s.enter().append("g").attr("class", "cluster").attr("id", (function(t) { return e.node(t).id })).style("opacity", 0), s = t.selectAll("g.cluster"), r.applyTransition(s, e).style("opacity", 1), s.each((function(t) { var n = e.node(t), r = i.select(this); i.select(this).append("rect"); var o = r.append("g").attr("class", "label"); a(o, n, n.clusterLabelPos) })), s.selectAll("rect").each((function(t) { var n = e.node(t), a = i.select(this); r.applyStyle(a, n.style) })), n = s.exit ? s.exit() : s.selectAll(null); return r.applyTransition(n, e).style("opacity", 0).remove(), s } }, function(t, e, n) { "use strict"; var r = n(43), i = n(110), a = n(15), o = n(30); t.exports = function(t, e) { var n, s = t.selectAll("g.edgeLabel").data(e.edges(), (function(t) { return a.edgeToId(t) })).classed("update", !0); s.exit().remove(), s.enter().append("g").classed("edgeLabel", !0).style("opacity", 0), (s = t.selectAll("g.edgeLabel")).each((function(t) { var n = o.select(this); n.select(".label").remove(); var a = e.edge(t), s = i(n, e.edge(t), 0, 0).classed("label", !0), u = s.node().getBBox(); a.labelId && s.attr("id", a.labelId), r.has(a, "width") || (a.width = u.width), r.has(a, "height") || (a.height = u.height) })), n = s.exit ? s.exit() : s.selectAll(null); return a.applyTransition(n, e).style("opacity", 0).remove(), s } }, function(t, e, n) { "use strict"; var r = n(43), i = n(187), a = n(15), o = n(30); function s(t, e) { var n = (o.line || o.svg.line)().x((function(t) { return t.x })).y((function(t) { return t.y })); return (n.curve || n.interpolate)(t.curve), n(e) } t.exports = function(t, e, n) { var u = t.selectAll("g.edgePath").data(e.edges(), (function(t) { return a.edgeToId(t) })).classed("update", !0), c = function(t, e) { var n = t.enter().append("g").attr("class", "edgePath").style("opacity", 0); return n.append("path").attr("class", "path").attr("d", (function(t) { var n = e.edge(t), i = e.node(t.v).elem; return s(n, r.range(n.points.length).map((function() { return e = (t = i).getBBox(), { x: (n = t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width / 2, e.height / 2)).e, y: n.f }; var t, e, n }))) })), n.append("defs"), n }(u, e); ! function(t, e) { var n = t.exit(); a.applyTransition(n, e).style("opacity", 0).remove() }(u, e); var f = void 0 !== u.merge ? u.merge(c) : u; return a.applyTransition(f, e).style("opacity", 1), f.each((function(t) { var n = o.select(this), r = e.edge(t); r.elem = this, r.id && n.attr("id", r.id), a.applyClass(n, r.class, (n.classed("update") ? "update " : "") + "edgePath") })), f.selectAll("path.path").each((function(t) { var n = e.edge(t); n.arrowheadId = r.uniqueId("arrowhead"); var u = o.select(this).attr("marker-end", (function() { return "url(" + (t = location.href, e = n.arrowheadId, t.split("#")[0] + "#" + e) + ")"; var t, e })).style("fill", "none"); a.applyTransition(u, e).attr("d", (function(t) { return function(t, e) { var n = t.edge(e), r = t.node(e.v), a = t.node(e.w), o = n.points.slice(1, n.points.length - 1); return o.unshift(i(r, o[0])), o.push(i(a, o[o.length - 1])), s(n, o) }(e, t) })), a.applyStyle(u, n.style) })), f.selectAll("defs *").remove(), f.selectAll("defs").each((function(t) { var r = e.edge(t); (0, n[r.arrowhead])(o.select(this), r.arrowheadId, r, "arrowhead") })), f } }, function(t, e, n) { "use strict"; var r = n(15), i = n(30); t.exports = function(t, e) { function n(t) { var n = e.node(t); return "translate(" + n.x + "," + n.y + ")" } t.filter((function() { return !i.select(this).classed("update") })).attr("transform", n), r.applyTransition(t, e).style("opacity", 1).attr("transform", n) } }, function(t, e, n) { "use strict"; var r = n(15), i = n(30), a = n(43); t.exports = function(t, e) { function n(t) { var n = e.edge(t); return a.has(n, "x") ? "translate(" + n.x + "," + n.y + ")" : "" } t.filter((function() { return !i.select(this).classed("update") })).attr("transform", n), r.applyTransition(t, e).style("opacity", 1).attr("transform", n) } }, function(t, e, n) { "use strict"; var r = n(15), i = n(30); t.exports = function(t, e) { var n = t.filter((function() { return !i.select(this).classed("update") })); function a(t) { var n = e.node(t); return "translate(" + n.x + "," + n.y + ")" } n.attr("transform", a), r.applyTransition(t, e).style("opacity", 1).attr("transform", a), r.applyTransition(n.selectAll("rect"), e).attr("width", (function(t) { return e.node(t).width })).attr("height", (function(t) { return e.node(t).height })).attr("x", (function(t) { return -e.node(t).width / 2 })).attr("y", (function(t) { return -e.node(t).height / 2 })) } }, function(t, e, n) { "use strict"; var r = n(190), i = n(109), a = n(188), o = n(189); t.exports = { rect: function(t, e, n) { var i = t.insert("rect", ":first-child").attr("rx", n.rx).attr("ry", n.ry).attr("x", -e.width / 2).attr("y", -e.height / 2).attr("width", e.width).attr("height", e.height); return n.intersect = function(t) { return r(n, t) }, i }, ellipse: function(t, e, n) { var r = e.width / 2, a = e.height / 2, o = t.insert("ellipse", ":first-child").attr("x", -e.width / 2).attr("y", -e.height / 2).attr("rx", r).attr("ry", a); return n.intersect = function(t) { return i(n, r, a, t) }, o }, circle: function(t, e, n) { var r = Math.max(e.width, e.height) / 2, i = t.insert("circle", ":first-child").attr("x", -e.width / 2).attr("y", -e.height / 2).attr("r", r); return n.intersect = function(t) { return a(n, r, t) }, i }, diamond: function(t, e, n) { var r = e.width * Math.SQRT2 / 2, i = e.height * Math.SQRT2 / 2, a = [{ x: 0, y: -i }, { x: -r, y: 0 }, { x: 0, y: i }, { x: r, y: 0 }], s = t.insert("polygon", ":first-child").attr("points", a.map((function(t) { return t.x + "," + t.y })).join(" ")); return n.intersect = function(t) { return o(n, a, t) }, s } } }, function(t, e, n) { var r = n(15); function i(t, e, n, i) { var a = t.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); r.applyStyle(a, n[i + "Style"]), n[i + "Class"] && a.attr("class", n[i + "Class"]) } t.exports = { default: i, normal: i, vee: function(t, e, n, i) { var a = t.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); r.applyStyle(a, n[i + "Style"]), n[i + "Class"] && a.attr("class", n[i + "Class"]) }, undirected: function(t, e, n, i) { var a = t.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0"); r.applyStyle(a, n[i + "Style"]), n[i + "Class"] && a.attr("class", n[i + "Class"]) } } }, function(t, e) { t.exports = "0.6.4" }, function(t, e, n) { "use strict"; e.randomBytes = e.rng = e.pseudoRandomBytes = e.prng = n(44), e.createHash = e.Hash = n(53), e.createHmac = e.Hmac = n(199); var r = n(439), i = Object.keys(r), a = ["sha1", "sha224", "sha256", "sha384", "sha512", "md5", "rmd160"].concat(i); e.getHashes = function() { return a }; var o = n(202); e.pbkdf2 = o.pbkdf2, e.pbkdf2Sync = o.pbkdf2Sync; var s = n(441); e.Cipher = s.Cipher, e.createCipher = s.createCipher, e.Cipheriv = s.Cipheriv, e.createCipheriv = s.createCipheriv, e.Decipher = s.Decipher, e.createDecipher = s.createDecipher, e.Decipheriv = s.Decipheriv, e.createDecipheriv = s.createDecipheriv, e.getCiphers = s.getCiphers, e.listCiphers = s.listCiphers; var u = n(456); e.DiffieHellmanGroup = u.DiffieHellmanGroup, e.createDiffieHellmanGroup = u.createDiffieHellmanGroup, e.getDiffieHellman = u.getDiffieHellman, e.createDiffieHellman = u.createDiffieHellman, e.DiffieHellman = u.DiffieHellman; var c = n(461); e.createSign = c.createSign, e.Sign = c.Sign, e.createVerify = c.createVerify, e.Verify = c.Verify, e.createECDH = n(495); var f = n(496); e.publicEncrypt = f.publicEncrypt, e.privateEncrypt = f.privateEncrypt, e.publicDecrypt = f.publicDecrypt, e.privateDecrypt = f.privateDecrypt; var l = n(499); e.randomFill = l.randomFill, e.randomFillSync = l.randomFillSync, e.createCredentials = function() { throw new Error(["sorry, createCredentials is not implemented yet", "we accept pull requests", "https://github.com/crypto-browserify/crypto-browserify"].join("\n")) }, e.constants = { DH_CHECK_P_NOT_SAFE_PRIME: 2, DH_CHECK_P_NOT_PRIME: 1, DH_UNABLE_TO_CHECK_GENERATOR: 4, DH_NOT_SUITABLE_GENERATOR: 8, NPN_ENABLED: 1, ALPN_ENABLED: 1, RSA_PKCS1_PADDING: 1, RSA_SSLV23_PADDING: 2, RSA_NO_PADDING: 3, RSA_PKCS1_OAEP_PADDING: 4, RSA_X931_PADDING: 5, RSA_PKCS1_PSS_PADDING: 6, POINT_CONVERSION_COMPRESSED: 2, POINT_CONVERSION_UNCOMPRESSED: 4, POINT_CONVERSION_HYBRID: 6 } }, function(t, e, n) { "use strict"; e.byteLength = function(t) { var e = c(t), n = e[0], r = e[1]; return 3 * (n + r) / 4 - r }, e.toByteArray = function(t) { var e, n, r = c(t), o = r[0], s = r[1], u = new a(function(t, e, n) { return 3 * (e + n) / 4 - n }(0, o, s)), f = 0, l = s > 0 ? o - 4 : o; for (n = 0; n < l; n += 4) e = i[t.charCodeAt(n)] << 18 | i[t.charCodeAt(n + 1)] << 12 | i[t.charCodeAt(n + 2)] << 6 | i[t.charCodeAt(n + 3)], u[f++] = e >> 16 & 255, u[f++] = e >> 8 & 255, u[f++] = 255 & e; 2 === s && (e = i[t.charCodeAt(n)] << 2 | i[t.charCodeAt(n + 1)] >> 4, u[f++] = 255 & e); 1 === s && (e = i[t.charCodeAt(n)] << 10 | i[t.charCodeAt(n + 1)] << 4 | i[t.charCodeAt(n + 2)] >> 2, u[f++] = e >> 8 & 255, u[f++] = 255 & e); return u }, e.fromByteArray = function(t) { for (var e, n = t.length, i = n % 3, a = [], o = 0, s = n - i; o < s; o += 16383) a.push(f(t, o, o + 16383 > s ? s : o + 16383)); 1 === i ? (e = t[n - 1], a.push(r[e >> 2] + r[e << 4 & 63] + "==")) : 2 === i && (e = (t[n - 2] << 8) + t[n - 1], a.push(r[e >> 10] + r[e >> 4 & 63] + r[e << 2 & 63] + "=")); return a.join("") }; for (var r = [], i = [], a = "undefined" != typeof Uint8Array ? Uint8Array : Array, o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", s = 0, u = o.length; s < u; ++s) r[s] = o[s], i[o.charCodeAt(s)] = s; function c(t) { var e = t.length; if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); var n = t.indexOf("="); return -1 === n && (n = e), [n, n === e ? 0 : 4 - n % 4] } function f(t, e, n) { for (var i, a, o = [], s = e; s < n; s += 3) i = (t[s] << 16 & 16711680) + (t[s + 1] << 8 & 65280) + (255 & t[s + 2]), o.push(r[(a = i) >> 18 & 63] + r[a >> 12 & 63] + r[a >> 6 & 63] + r[63 & a]); return o.join("") } i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63 }, function(t, e) { e.read = function(t, e, n, r, i) { var a, o, s = 8 * i - r - 1, u = (1 << s) - 1, c = u >> 1, f = -7, l = n ? i - 1 : 0, h = n ? -1 : 1, d = t[e + l]; for (l += h, a = d & (1 << -f) - 1, d >>= -f, f += s; f > 0; a = 256 * a + t[e + l], l += h, f -= 8); for (o = a & (1 << -f) - 1, a >>= -f, f += r; f > 0; o = 256 * o + t[e + l], l += h, f -= 8); if (0 === a) a = 1 - c; else { if (a === u) return o ? NaN : 1 / 0 * (d ? -1 : 1); o += Math.pow(2, r), a -= c } return (d ? -1 : 1) * o * Math.pow(2, a - r) }, e.write = function(t, e, n, r, i, a) { var o, s, u, c = 8 * a - i - 1, f = (1 << c) - 1, l = f >> 1, h = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, d = r ? 0 : a - 1, p = r ? 1 : -1, g = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0; for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (s = isNaN(e) ? 1 : 0, o = f) : (o = Math.floor(Math.log(e) / Math.LN2), e * (u = Math.pow(2, -o)) < 1 && (o--, u *= 2), (e += o + l >= 1 ? h / u : h * Math.pow(2, 1 - l)) * u >= 2 && (o++, u /= 2), o + l >= f ? (s = 0, o = f) : o + l >= 1 ? (s = (e * u - 1) * Math.pow(2, i), o += l) : (s = e * Math.pow(2, l - 1) * Math.pow(2, i), o = 0)); i >= 8; t[n + d] = 255 & s, d += p, s /= 256, i -= 8); for (o = o << i | s, c += i; c > 0; t[n + d] = 255 & o, d += p, o /= 256, c -= 8); t[n + d - p] |= 128 * g } }, function(t, e) {}, function(t, e, n) { "use strict"; var r = n(115).Buffer, i = n(425); t.exports = function() { function t() { ! function(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, t), this.head = null, this.tail = null, this.length = 0 } return t.prototype.push = function(t) { var e = { data: t, next: null }; this.length > 0 ? this.tail.next = e : this.head = e, this.tail = e, ++this.length }, t.prototype.unshift = function(t) { var e = { data: t, next: this.head }; 0 === this.length && (this.tail = e), this.head = e, ++this.length }, t.prototype.shift = function() { if (0 !== this.length) { var t = this.head.data; return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, t } }, t.prototype.clear = function() { this.head = this.tail = null, this.length = 0 }, t.prototype.join = function(t) { if (0 === this.length) return ""; for (var e = this.head, n = "" + e.data; e = e.next;) n += t + e.data; return n }, t.prototype.concat = function(t) { if (0 === this.length) return r.alloc(0); if (1 === this.length) return this.head.data; for (var e, n, i, a = r.allocUnsafe(t >>> 0), o = this.head, s = 0; o;) e = o.data, n = a, i = s, e.copy(n, i), s += o.data.length, o = o.next; return a }, t }(), i && i.inspect && i.inspect.custom && (t.exports.prototype[i.inspect.custom] = function() { var t = i.inspect({ length: this.length }); return this.constructor.name + " " + t }) }, function(t, e) {}, function(t, e, n) { (function(t) { var r = void 0 !== t && t || "undefined" != typeof self && self || window, i = Function.prototype.apply; function a(t, e) { this._id = t, this._clearFn = e } e.setTimeout = function() { return new a(i.call(setTimeout, r, arguments), clearTimeout) }, e.setInterval = function() { return new a(i.call(setInterval, r, arguments), clearInterval) }, e.clearTimeout = e.clearInterval = function(t) { t && t.close() }, a.prototype.unref = a.prototype.ref = function() {}, a.prototype.close = function() { this._clearFn.call(r, this._id) }, e.enroll = function(t, e) { clearTimeout(t._idleTimeoutId), t._idleTimeout = e }, e.unenroll = function(t) { clearTimeout(t._idleTimeoutId), t._idleTimeout = -1 }, e._unrefActive = e.active = function(t) { clearTimeout(t._idleTimeoutId); var e = t._idleTimeout; e >= 0 && (t._idleTimeoutId = setTimeout((function() { t._onTimeout && t._onTimeout() }), e)) }, n(427), e.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== t && t.setImmediate || this && this.setImmediate, e.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== t && t.clearImmediate || this && this.clearImmediate }).call(this, n(12)) }, function(t, e, n) { (function(t, e) { ! function(t, n) { "use strict"; if (!t.setImmediate) { var r, i, a, o, s, u = 1, c = {}, f = !1, l = t.document, h = Object.getPrototypeOf && Object.getPrototypeOf(t); h = h && h.setTimeout ? h : t, "[object process]" === {}.toString.call(t.process) ? r = function(t) { e.nextTick((function() { p(t) })) } : ! function() { if (t.postMessage && !t.importScripts) { var e = !0, n = t.onmessage; return t.onmessage = function() { e = !1 }, t.postMessage("", "*"), t.onmessage = n, e } }() ? t.MessageChannel ? ((a = new MessageChannel).port1.onmessage = function(t) { p(t.data) }, r = function(t) { a.port2.postMessage(t) }) : l && "onreadystatechange" in l.createElement("script") ? (i = l.documentElement, r = function(t) { var e = l.createElement("script"); e.onreadystatechange = function() { p(t), e.onreadystatechange = null, i.removeChild(e), e = null }, i.appendChild(e) }) : r = function(t) { setTimeout(p, 0, t) } : (o = "setImmediate$" + Math.random() + "$", s = function(e) { e.source === t && "string" == typeof e.data && 0 === e.data.indexOf(o) && p(+e.data.slice(o.length)) }, t.addEventListener ? t.addEventListener("message", s, !1) : t.attachEvent("onmessage", s), r = function(e) { t.postMessage(o + e, "*") }), h.setImmediate = function(t) { "function" != typeof t && (t = new Function("" + t)); for (var e = new Array(arguments.length - 1), n = 0; n < e.length; n++) e[n] = arguments[n + 1]; var i = { callback: t, args: e }; return c[u] = i, r(u), u++ }, h.clearImmediate = d } function d(t) { delete c[t] } function p(t) { if (f) setTimeout(p, 0, t); else { var e = c[t]; if (e) { f = !0; try { ! function(t) { var e = t.callback, r = t.args; switch (r.length) { case 0: e(); break; case 1: e(r[0]); break; case 2: e(r[0], r[1]); break; case 3: e(r[0], r[1], r[2]); break; default: e.apply(n, r) } }(e) } finally { d(t), f = !1 } } } } }("undefined" == typeof self ? void 0 === t ? this : t : self) }).call(this, n(12), n(7)) }, function(t, e, n) { (function(e) { function n(t) { try { if (!e.localStorage) return !1 } catch (t) { return !1 } var n = e.localStorage[t]; return null != n && "true" === String(n).toLowerCase() } t.exports = function(t, e) { if (n("noDeprecation")) return t; var r = !1; return function() { if (!r) { if (n("throwDeprecation")) throw new Error(e); n("traceDeprecation") ? console.trace(e) : console.warn(e), r = !0 } return t.apply(this, arguments) } } }).call(this, n(12)) }, function(t, e, n) { "use strict"; t.exports = a; var r = n(196), i = n(54); function a(t) { if (!(this instanceof a)) return new a(t); r.call(this, t) } i.inherits = n(2), i.inherits(a, r), a.prototype._transform = function(t, e, n) { n(null, t) } }, function(t, e, n) { t.exports = n(116) }, function(t, e, n) { t.exports = n(35) }, function(t, e, n) { t.exports = n(114).Transform }, function(t, e, n) { t.exports = n(114).PassThrough }, function(t, e, n) { var r = n(2), i = n(45), a = n(3).Buffer, o = [1518500249, 1859775393, -1894007588, -899497514], s = new Array(80); function u() { this.init(), this._w = s, i.call(this, 64, 56) } function c(t) { return t << 30 | t >>> 2 } function f(t, e, n, r) { return 0 === t ? e & n | ~e & r : 2 === t ? e & n | e & r | n & r : e ^ n ^ r } r(u, i), u.prototype.init = function() { return this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878, this._e = 3285377520, this }, u.prototype._update = function(t) { for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, a = 0 | this._c, s = 0 | this._d, u = 0 | this._e, l = 0; l < 16; ++l) n[l] = t.readInt32BE(4 * l); for (; l < 80; ++l) n[l] = n[l - 3] ^ n[l - 8] ^ n[l - 14] ^ n[l - 16]; for (var h = 0; h < 80; ++h) { var d = ~~(h / 20), p = 0 | ((e = r) << 5 | e >>> 27) + f(d, i, a, s) + u + n[h] + o[d]; u = s, s = a, a = c(i), i = r, r = p } this._a = r + this._a | 0, this._b = i + this._b | 0, this._c = a + this._c | 0, this._d = s + this._d | 0, this._e = u + this._e | 0 }, u.prototype._hash = function() { var t = a.allocUnsafe(20); return t.writeInt32BE(0 | this._a, 0), t.writeInt32BE(0 | this._b, 4), t.writeInt32BE(0 | this._c, 8), t.writeInt32BE(0 | this._d, 12), t.writeInt32BE(0 | this._e, 16), t }, t.exports = u }, function(t, e, n) { var r = n(2), i = n(45), a = n(3).Buffer, o = [1518500249, 1859775393, -1894007588, -899497514], s = new Array(80); function u() { this.init(), this._w = s, i.call(this, 64, 56) } function c(t) { return t << 5 | t >>> 27 } function f(t) { return t << 30 | t >>> 2 } function l(t, e, n, r) { return 0 === t ? e & n | ~e & r : 2 === t ? e & n | e & r | n & r : e ^ n ^ r } r(u, i), u.prototype.init = function() { return this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878, this._e = 3285377520, this }, u.prototype._update = function(t) { for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, a = 0 | this._c, s = 0 | this._d, u = 0 | this._e, h = 0; h < 16; ++h) n[h] = t.readInt32BE(4 * h); for (; h < 80; ++h) n[h] = (e = n[h - 3] ^ n[h - 8] ^ n[h - 14] ^ n[h - 16]) << 1 | e >>> 31; for (var d = 0; d < 80; ++d) { var p = ~~(d / 20), g = c(r) + l(p, i, a, s) + u + n[d] + o[p] | 0; u = s, s = a, a = f(i), i = r, r = g } this._a = r + this._a | 0, this._b = i + this._b | 0, this._c = a + this._c | 0, this._d = s + this._d | 0, this._e = u + this._e | 0 }, u.prototype._hash = function() { var t = a.allocUnsafe(20); return t.writeInt32BE(0 | this._a, 0), t.writeInt32BE(0 | this._b, 4), t.writeInt32BE(0 | this._c, 8), t.writeInt32BE(0 | this._d, 12), t.writeInt32BE(0 | this._e, 16), t }, t.exports = u }, function(t, e, n) { var r = n(2), i = n(197), a = n(45), o = n(3).Buffer, s = new Array(64); function u() { this.init(), this._w = s, a.call(this, 64, 56) } r(u, i), u.prototype.init = function() { return this._a = 3238371032, this._b = 914150663, this._c = 812702999, this._d = 4144912697, this._e = 4290775857, this._f = 1750603025, this._g = 1694076839, this._h = 3204075428, this }, u.prototype._hash = function() { var t = o.allocUnsafe(28); return t.writeInt32BE(this._a, 0), t.writeInt32BE(this._b, 4), t.writeInt32BE(this._c, 8), t.writeInt32BE(this._d, 12), t.writeInt32BE(this._e, 16), t.writeInt32BE(this._f, 20), t.writeInt32BE(this._g, 24), t }, t.exports = u }, function(t, e, n) { var r = n(2), i = n(198), a = n(45), o = n(3).Buffer, s = new Array(160); function u() { this.init(), this._w = s, a.call(this, 128, 112) } r(u, i), u.prototype.init = function() { return this._ah = 3418070365, this._bh = 1654270250, this._ch = 2438529370, this._dh = 355462360, this._eh = 1731405415, this._fh = 2394180231, this._gh = 3675008525, this._hh = 1203062813, this._al = 3238371032, this._bl = 914150663, this._cl = 812702999, this._dl = 4144912697, this._el = 4290775857, this._fl = 1750603025, this._gl = 1694076839, this._hl = 3204075428, this }, u.prototype._hash = function() { var t = o.allocUnsafe(48); function e(e, n, r) { t.writeInt32BE(e, r), t.writeInt32BE(n, r + 4) } return e(this._ah, this._al, 0), e(this._bh, this._bl, 8), e(this._ch, this._cl, 16), e(this._dh, this._dl, 24), e(this._eh, this._el, 32), e(this._fh, this._fl, 40), t }, t.exports = u }, function(t, e, n) { "use strict"; var r = n(2), i = n(3).Buffer, a = n(31), o = i.alloc(128), s = 64; function u(t, e) { a.call(this, "digest"), "string" == typeof e && (e = i.from(e)), this._alg = t, this._key = e, e.length > s ? e = t(e) : e.length < s && (e = i.concat([e, o], s)); for (var n = this._ipad = i.allocUnsafe(s), r = this._opad = i.allocUnsafe(s), u = 0; u < s; u++) n[u] = 54 ^ e[u], r[u] = 92 ^ e[u]; this._hash = [n] } r(u, a), u.prototype._update = function(t) { this._hash.push(t) }, u.prototype._final = function() { var t = this._alg(i.concat(this._hash)); return this._alg(i.concat([this._opad, t])) }, t.exports = u }, function(t, e, n) { t.exports = n(201) }, function(t, e, n) { (function(e, r) { var i, a = n(203), o = n(204), s = n(205), u = n(3).Buffer, c = e.crypto && e.crypto.subtle, f = { sha: "SHA-1", "sha-1": "SHA-1", sha1: "SHA-1", sha256: "SHA-256", "sha-256": "SHA-256", sha384: "SHA-384", "sha-384": "SHA-384", "sha-512": "SHA-512", sha512: "SHA-512" }, l = []; function h(t, e, n, r, i) { return c.importKey("raw", t, { name: "PBKDF2" }, !1, ["deriveBits"]).then((function(t) { return c.deriveBits({ name: "PBKDF2", salt: e, iterations: n, hash: { name: i } }, t, r << 3) })).then((function(t) { return u.from(t) })) } t.exports = function(t, n, d, p, g, y) { "function" == typeof g && (y = g, g = void 0); var b = f[(g = g || "sha1").toLowerCase()]; if (!b || "function" != typeof e.Promise) return r.nextTick((function() { var e; try { e = s(t, n, d, p, g) } catch (t) { return y(t) } y(null, e) })); if (a(t, n, d, p), "function" != typeof y) throw new Error("No callback provided to pbkdf2"); u.isBuffer(t) || (t = u.from(t, o)), u.isBuffer(n) || (n = u.from(n, o)), function(t, e) { t.then((function(t) { r.nextTick((function() { e(null, t) })) }), (function(t) { r.nextTick((function() { e(t) })) })) }(function(t) { if (e.process && !e.process.browser) return Promise.resolve(!1); if (!c || !c.importKey || !c.deriveBits) return Promise.resolve(!1); if (void 0 !== l[t]) return l[t]; var n = h(i = i || u.alloc(8), i, 10, 128, t).then((function() { return !0 })).catch((function() { return !1 })); return l[t] = n, n }(b).then((function(e) { return e ? h(t, n, d, p, b) : s(t, n, d, p, g) })), y) } }).call(this, n(12), n(7)) }, function(t, e, n) { var r = n(442), i = n(121), a = n(122), o = n(455), s = n(80); function u(t, e, n) { if (t = t.toLowerCase(), a[t]) return i.createCipheriv(t, e, n); if (o[t]) return new r({ key: e, iv: n, mode: t }); throw new TypeError("invalid suite type") } function c(t, e, n) { if (t = t.toLowerCase(), a[t]) return i.createDecipheriv(t, e, n); if (o[t]) return new r({ key: e, iv: n, mode: t, decrypt: !0 }); throw new TypeError("invalid suite type") } e.createCipher = e.Cipher = function(t, e) { var n, r; if (t = t.toLowerCase(), a[t]) n = a[t].key, r = a[t].iv; else { if (!o[t]) throw new TypeError("invalid suite type"); n = 8 * o[t].key, r = o[t].iv } var i = s(e, !1, n, r); return u(t, i.key, i.iv) }, e.createCipheriv = e.Cipheriv = u, e.createDecipher = e.Decipher = function(t, e) { var n, r; if (t = t.toLowerCase(), a[t]) n = a[t].key, r = a[t].iv; else { if (!o[t]) throw new TypeError("invalid suite type"); n = 8 * o[t].key, r = o[t].iv } var i = s(e, !1, n, r); return c(t, i.key, i.iv) }, e.createDecipheriv = e.Decipheriv = c, e.listCiphers = e.getCiphers = function() { return Object.keys(o).concat(i.getCiphers()) } }, function(t, e, n) { var r = n(31), i = n(443), a = n(2), o = n(3).Buffer, s = { "des-ede3-cbc": i.CBC.instantiate(i.EDE), "des-ede3": i.EDE, "des-ede-cbc": i.CBC.instantiate(i.EDE), "des-ede": i.EDE, "des-cbc": i.CBC.instantiate(i.DES), "des-ecb": i.DES }; function u(t) { r.call(this); var e, n = t.mode.toLowerCase(), i = s[n]; e = t.decrypt ? "decrypt" : "encrypt"; var a = t.key; o.isBuffer(a) || (a = o.from(a)), "des-ede" !== n && "des-ede-cbc" !== n || (a = o.concat([a, a.slice(0, 8)])); var u = t.iv; o.isBuffer(u) || (u = o.from(u)), this._des = i.create({ key: a, iv: u, type: e }) } s.des = s["des-cbc"], s.des3 = s["des-ede3-cbc"], t.exports = u, a(u, r), u.prototype._update = function(t) { return o.from(this._des.update(t)) }, u.prototype._final = function() { return o.from(this._des.final()) } }, function(t, e, n) { "use strict"; e.utils = n(206), e.Cipher = n(120), e.DES = n(207), e.CBC = n(444), e.EDE = n(445) }, function(t, e, n) { "use strict"; var r = n(16), i = n(2), a = {}; function o(t) { r.equal(t.length, 8, "Invalid IV length"), this.iv = new Array(8); for (var e = 0; e < this.iv.length; e++) this.iv[e] = t[e] } e.instantiate = function(t) { function e(e) { t.call(this, e), this._cbcInit() } i(e, t); for (var n = Object.keys(a), r = 0; r < n.length; r++) { var o = n[r]; e.prototype[o] = a[o] } return e.create = function(t) { return new e(t) }, e }, a._cbcInit = function() { var t = new o(this.options.iv); this._cbcState = t }, a._update = function(t, e, n, r) { var i = this._cbcState, a = this.constructor.super_.prototype, o = i.iv; if ("encrypt" === this.type) { for (var s = 0; s < this.blockSize; s++) o[s] ^= t[e + s]; a._update.call(this, o, 0, n, r); for (s = 0; s < this.blockSize; s++) o[s] = n[r + s] } else { a._update.call(this, t, e, n, r); for (s = 0; s < this.blockSize; s++) n[r + s] ^= o[s]; for (s = 0; s < this.blockSize; s++) o[s] = t[e + s] } } }, function(t, e, n) { "use strict"; var r = n(16), i = n(2), a = n(120), o = n(207); function s(t, e) { r.equal(e.length, 24, "Invalid key length"); var n = e.slice(0, 8), i = e.slice(8, 16), a = e.slice(16, 24); this.ciphers = "encrypt" === t ? [o.create({ type: "encrypt", key: n }), o.create({ type: "decrypt", key: i }), o.create({ type: "encrypt", key: a })] : [o.create({ type: "decrypt", key: a }), o.create({ type: "encrypt", key: i }), o.create({ type: "decrypt", key: n })] } function u(t) { a.call(this, t); var e = new s(this.type, this.options.key); this._edeState = e } i(u, a), t.exports = u, u.create = function(t) { return new u(t) }, u.prototype._update = function(t, e, n, r) { var i = this._edeState; i.ciphers[0]._update(t, e, n, r), i.ciphers[1]._update(n, r, n, r), i.ciphers[2]._update(n, r, n, r) }, u.prototype._pad = o.prototype._pad, u.prototype._unpad = o.prototype._unpad }, function(t, e, n) { var r = n(122), i = n(211), a = n(3).Buffer, o = n(212), s = n(31), u = n(79), c = n(80); function f(t, e, n) { s.call(this), this._cache = new h, this._cipher = new u.AES(e), this._prev = a.from(n), this._mode = t, this._autopadding = !0 } n(2)(f, s), f.prototype._update = function(t) { var e, n; this._cache.add(t); for (var r = []; e = this._cache.get();) n = this._mode.encrypt(this, e), r.push(n); return a.concat(r) }; var l = a.alloc(16, 16); function h() { this.cache = a.allocUnsafe(0) } function d(t, e, n) { var s = r[t.toLowerCase()]; if (!s) throw new TypeError("invalid suite type"); if ("string" == typeof e && (e = a.from(e)), e.length !== s.key / 8) throw new TypeError("invalid key length " + e.length); if ("string" == typeof n && (n = a.from(n)), "GCM" !== s.mode && n.length !== s.iv) throw new TypeError("invalid iv length " + n.length); return "stream" === s.type ? new o(s.module, e, n) : "auth" === s.type ? new i(s.module, e, n) : new f(s.module, e, n) } f.prototype._final = function() { var t = this._cache.flush(); if (this._autopadding) return t = this._mode.encrypt(this, t), this._cipher.scrub(), t; if (!t.equals(l)) throw this._cipher.scrub(), new Error("data not multiple of block length") }, f.prototype.setAutoPadding = function(t) { return this._autopadding = !!t, this }, h.prototype.add = function(t) { this.cache = a.concat([this.cache, t]) }, h.prototype.get = function() { if (this.cache.length > 15) { var t = this.cache.slice(0, 16); return this.cache = this.cache.slice(16), t } return null }, h.prototype.flush = function() { for (var t = 16 - this.cache.length, e = a.allocUnsafe(t), n = -1; ++n < t;) e.writeUInt8(t, n); return a.concat([this.cache, e]) }, e.createCipheriv = d, e.createCipher = function(t, e) { var n = r[t.toLowerCase()]; if (!n) throw new TypeError("invalid suite type"); var i = c(e, !1, n.key, n.iv); return d(t, i.key, i.iv) } }, function(t, e) { e.encrypt = function(t, e) { return t._cipher.encryptBlock(e) }, e.decrypt = function(t, e) { return t._cipher.decryptBlock(e) } }, function(t, e, n) { var r = n(55); e.encrypt = function(t, e) { var n = r(e, t._prev); return t._prev = t._cipher.encryptBlock(n), t._prev }, e.decrypt = function(t, e) { var n = t._prev; t._prev = e; var i = t._cipher.decryptBlock(e); return r(i, n) } }, function(t, e, n) { var r = n(3).Buffer, i = n(55); function a(t, e, n) { var a = e.length, o = i(e, t._cache); return t._cache = t._cache.slice(a), t._prev = r.concat([t._prev, n ? e : o]), o } e.encrypt = function(t, e, n) { for (var i, o = r.allocUnsafe(0); e.length;) { if (0 === t._cache.length && (t._cache = t._cipher.encryptBlock(t._prev), t._prev = r.allocUnsafe(0)), !(t._cache.length <= e.length)) { o = r.concat([o, a(t, e, n)]); break } i = t._cache.length, o = r.concat([o, a(t, e.slice(0, i), n)]), e = e.slice(i) } return o } }, function(t, e, n) { var r = n(3).Buffer; function i(t, e, n) { var i = t._cipher.encryptBlock(t._prev)[0] ^ e; return t._prev = r.concat([t._prev.slice(1), r.from([n ? e : i])]), i } e.encrypt = function(t, e, n) { for (var a = e.length, o = r.allocUnsafe(a), s = -1; ++s < a;) o[s] = i(t, e[s], n); return o } }, function(t, e, n) { var r = n(3).Buffer; function i(t, e, n) { for (var r, i, o = -1, s = 0; ++o < 8;) r = e & 1 << 7 - o ? 128 : 0, s += (128 & (i = t._cipher.encryptBlock(t._prev)[0] ^ r)) >> o % 8, t._prev = a(t._prev, n ? r : i); return s } function a(t, e) { var n = t.length, i = -1, a = r.allocUnsafe(t.length); for (t = r.concat([t, r.from([e])]); ++i < n;) a[i] = t[i] << 1 | t[i + 1] >> 7; return a } e.encrypt = function(t, e, n) { for (var a = e.length, o = r.allocUnsafe(a), s = -1; ++s < a;) o[s] = i(t, e[s], n); return o } }, function(t, e, n) { (function(t) { var r = n(55); function i(t) { return t._prev = t._cipher.encryptBlock(t._prev), t._prev } e.encrypt = function(e, n) { for (; e._cache.length < n.length;) e._cache = t.concat([e._cache, i(e)]); var a = e._cache.slice(0, n.length); return e._cache = e._cache.slice(n.length), r(n, a) } }).call(this, n(8).Buffer) }, function(t, e, n) { var r = n(3).Buffer, i = r.alloc(16, 0); function a(t) { var e = r.allocUnsafe(16); return e.writeUInt32BE(t[0] >>> 0, 0), e.writeUInt32BE(t[1] >>> 0, 4), e.writeUInt32BE(t[2] >>> 0, 8), e.writeUInt32BE(t[3] >>> 0, 12), e } function o(t) { this.h = t, this.state = r.alloc(16, 0), this.cache = r.allocUnsafe(0) } o.prototype.ghash = function(t) { for (var e = -1; ++e < t.length;) this.state[e] ^= t[e]; this._multiply() }, o.prototype._multiply = function() { for (var t, e, n, r = [(t = this.h).readUInt32BE(0), t.readUInt32BE(4), t.readUInt32BE(8), t.readUInt32BE(12)], i = [0, 0, 0, 0], o = -1; ++o < 128;) { for (0 != (this.state[~~(o / 8)] & 1 << 7 - o % 8) && (i[0] ^= r[0], i[1] ^= r[1], i[2] ^= r[2], i[3] ^= r[3]), n = 0 != (1 & r[3]), e = 3; e > 0; e--) r[e] = r[e] >>> 1 | (1 & r[e - 1]) << 31; r[0] = r[0] >>> 1, n && (r[0] = r[0] ^ 225 << 24) } this.state = a(i) }, o.prototype.update = function(t) { var e; for (this.cache = r.concat([this.cache, t]); this.cache.length >= 16;) e = this.cache.slice(0, 16), this.cache = this.cache.slice(16), this.ghash(e) }, o.prototype.final = function(t, e) { return this.cache.length && this.ghash(r.concat([this.cache, i], 16)), this.ghash(a([0, t, 0, e])), this.state }, t.exports = o }, function(t, e, n) { var r = n(211), i = n(3).Buffer, a = n(122), o = n(212), s = n(31), u = n(79), c = n(80); function f(t, e, n) { s.call(this), this._cache = new l, this._last = void 0, this._cipher = new u.AES(e), this._prev = i.from(n), this._mode = t, this._autopadding = !0 } function l() { this.cache = i.allocUnsafe(0) } function h(t, e, n) { var s = a[t.toLowerCase()]; if (!s) throw new TypeError("invalid suite type"); if ("string" == typeof n && (n = i.from(n)), "GCM" !== s.mode && n.length !== s.iv) throw new TypeError("invalid iv length " + n.length); if ("string" == typeof e && (e = i.from(e)), e.length !== s.key / 8) throw new TypeError("invalid key length " + e.length); return "stream" === s.type ? new o(s.module, e, n, !0) : "auth" === s.type ? new r(s.module, e, n, !0) : new f(s.module, e, n) } n(2)(f, s), f.prototype._update = function(t) { var e, n; this._cache.add(t); for (var r = []; e = this._cache.get(this._autopadding);) n = this._mode.decrypt(this, e), r.push(n); return i.concat(r) }, f.prototype._final = function() { var t = this._cache.flush(); if (this._autopadding) return function(t) { var e = t[15]; if (e < 1 || e > 16) throw new Error("unable to decrypt data"); var n = -1; for (; ++n < e;) if (t[n + (16 - e)] !== e) throw new Error("unable to decrypt data"); if (16 === e) return; return t.slice(0, 16 - e) }(this._mode.decrypt(this, t)); if (t) throw new Error("data not multiple of block length") }, f.prototype.setAutoPadding = function(t) { return this._autopadding = !!t, this }, l.prototype.add = function(t) { this.cache = i.concat([this.cache, t]) }, l.prototype.get = function(t) { var e; if (t) { if (this.cache.length > 16) return e = this.cache.slice(0, 16), this.cache = this.cache.slice(16), e } else if (this.cache.length >= 16) return e = this.cache.slice(0, 16), this.cache = this.cache.slice(16), e; return null }, l.prototype.flush = function() { if (this.cache.length) return this.cache }, e.createDecipher = function(t, e) { var n = a[t.toLowerCase()]; if (!n) throw new TypeError("invalid suite type"); var r = c(e, !1, n.key, n.iv); return h(t, r.key, r.iv) }, e.createDecipheriv = h }, function(t, e) { e["des-ecb"] = { key: 8, iv: 0 }, e["des-cbc"] = e.des = { key: 8, iv: 8 }, e["des-ede3-cbc"] = e.des3 = { key: 24, iv: 8 }, e["des-ede3"] = { key: 24, iv: 0 }, e["des-ede-cbc"] = { key: 16, iv: 8 }, e["des-ede"] = { key: 16, iv: 0 } }, function(t, e, n) { (function(t) { var r = n(213), i = n(459), a = n(460); var o = { binary: !0, hex: !0, base64: !0 }; e.DiffieHellmanGroup = e.createDiffieHellmanGroup = e.getDiffieHellman = function(e) { var n = new t(i[e].prime, "hex"), r = new t(i[e].gen, "hex"); return new a(n, r) }, e.createDiffieHellman = e.DiffieHellman = function e(n, i, s, u) { return t.isBuffer(i) || void 0 === o[i] ? e(n, "binary", i, s) : (i = i || "binary", u = u || "binary", s = s || new t([2]), t.isBuffer(s) || (s = new t(s, u)), "number" == typeof n ? new a(r(n, s), s, !0) : (t.isBuffer(n) || (n = new t(n, i)), new a(n, s, !0))) } }).call(this, n(8).Buffer) }, function(t, e) {}, function(t, e) {}, function(t) { t.exports = JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}') }, function(t, e, n) { (function(e) { var r = n(5), i = new(n(214)), a = new r(24), o = new r(11), s = new r(10), u = new r(3), c = new r(7), f = n(213), l = n(44); function h(t, n) { return n = n || "utf8", e.isBuffer(t) || (t = new e(t, n)), this._pub = new r(t), this } function d(t, n) { return n = n || "utf8", e.isBuffer(t) || (t = new e(t, n)), this._priv = new r(t), this } t.exports = g; var p = {}; function g(t, e, n) { this.setGenerator(e), this.__prime = new r(t), this._prime = r.mont(this.__prime), this._primeLen = t.length, this._pub = void 0, this._priv = void 0, this._primeCode = void 0, n ? (this.setPublicKey = h, this.setPrivateKey = d) : this._primeCode = 8 } function y(t, n) { var r = new e(t.toArray()); return n ? r.toString(n) : r } Object.defineProperty(g.prototype, "verifyError", { enumerable: !0, get: function() { return "number" != typeof this._primeCode && (this._primeCode = function(t, e) { var n = e.toString("hex"), r = [n, t.toString(16)].join("_"); if (r in p) return p[r]; var l, h = 0; if (t.isEven() || !f.simpleSieve || !f.fermatTest(t) || !i.test(t)) return h += 1, h += "02" === n || "05" === n ? 8 : 4, p[r] = h, h; switch (i.test(t.shrn(1)) || (h += 2), n) { case "02": t.mod(a).cmp(o) && (h += 8); break; case "05": (l = t.mod(s)).cmp(u) && l.cmp(c) && (h += 8); break; default: h += 4 } return p[r] = h, h }(this.__prime, this.__gen)), this._primeCode } }), g.prototype.generateKeys = function() { return this._priv || (this._priv = new r(l(this._primeLen))), this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed(), this.getPublicKey() }, g.prototype.computeSecret = function(t) { var n = (t = (t = new r(t)).toRed(this._prime)).redPow(this._priv).fromRed(), i = new e(n.toArray()), a = this.getPrime(); if (i.length < a.length) { var o = new e(a.length - i.length); o.fill(0), i = e.concat([o, i]) } return i }, g.prototype.getPublicKey = function(t) { return y(this._pub, t) }, g.prototype.getPrivateKey = function(t) { return y(this._priv, t) }, g.prototype.getPrime = function(t) { return y(this.__prime, t) }, g.prototype.getGenerator = function(t) { return y(this._gen, t) }, g.prototype.setGenerator = function(t, n) { return n = n || "utf8", e.isBuffer(t) || (t = new e(t, n)), this.__gen = t, this._gen = new r(t), this } }).call(this, n(8).Buffer) }, function(t, e, n) { (function(e) { var r = n(53), i = n(112), a = n(2), o = n(462), s = n(494), u = n(201); function c(t) { i.Writable.call(this); var e = u[t]; if (!e) throw new Error("Unknown message digest"); this._hashType = e.hash, this._hash = r(e.hash), this._tag = e.id, this._signType = e.sign } function f(t) { i.Writable.call(this); var e = u[t]; if (!e) throw new Error("Unknown message digest"); this._hash = r(e.hash), this._tag = e.id, this._signType = e.sign } function l(t) { return new c(t) } function h(t) { return new f(t) } Object.keys(u).forEach((function(t) { u[t].id = new e(u[t].id, "hex"), u[t.toLowerCase()] = u[t] })), a(c, i.Writable), c.prototype._write = function(t, e, n) { this._hash.update(t), n() }, c.prototype.update = function(t, n) { return "string" == typeof t && (t = new e(t, n)), this._hash.update(t), this }, c.prototype.sign = function(t, e) { this.end(); var n = this._hash.digest(), r = o(n, t, this._hashType, this._signType, this._tag); return e ? r.toString(e) : r }, a(f, i.Writable), f.prototype._write = function(t, e, n) { this._hash.update(t), n() }, f.prototype.update = function(t, n) { return "string" == typeof t && (t = new e(t, n)), this._hash.update(t), this }, f.prototype.verify = function(t, n, r) { "string" == typeof n && (n = new e(n, r)), this.end(); var i = this._hash.digest(); return s(n, i, t, this._signType, this._tag) }, t.exports = { Sign: l, Verify: h, createSign: l, createVerify: h } }).call(this, n(8).Buffer) }, function(t, e, n) { (function(e) { var r = n(199), i = n(124), a = n(125).ec, o = n(5), s = n(82), u = n(224); function c(t, n, i, a) { if ((t = new e(t.toArray())).length < n.byteLength()) { var o = new e(n.byteLength() - t.length); o.fill(0), t = e.concat([o, t]) } var s = i.length, u = function(t, n) { t = (t = f(t, n)).mod(n); var r = new e(t.toArray()); if (r.length < n.byteLength()) { var i = new e(n.byteLength() - r.length); i.fill(0), r = e.concat([i, r]) } return r }(i, n), c = new e(s); c.fill(1); var l = new e(s); return l.fill(0), l = r(a, l).update(c).update(new e([0])).update(t).update(u).digest(), c = r(a, l).update(c).digest(), { k: l = r(a, l).update(c).update(new e([1])).update(t).update(u).digest(), v: c = r(a, l).update(c).digest() } } function f(t, e) { var n = new o(t), r = (t.length << 3) - e.bitLength(); return r > 0 && n.ishrn(r), n } function l(t, n, i) { var a, o; do { for (a = new e(0); 8 * a.length < t.bitLength();) n.v = r(i, n.k).update(n.v).digest(), a = e.concat([a, n.v]); o = f(a, t), n.k = r(i, n.k).update(n.v).update(new e([0])).digest(), n.v = r(i, n.k).update(n.v).digest() } while (-1 !== o.cmp(t)); return o } function h(t, e, n, r) { return t.toRed(o.mont(n)).redPow(e).fromRed().mod(r) } t.exports = function(t, n, r, d, p) { var g = s(n); if (g.curve) { if ("ecdsa" !== d && "ecdsa/rsa" !== d) throw new Error("wrong private key type"); return function(t, n) { var r = u[n.curve.join(".")]; if (!r) throw new Error("unknown curve " + n.curve.join(".")); var i = new a(r).keyFromPrivate(n.privateKey).sign(t); return new e(i.toDER()) }(t, g) } if ("dsa" === g.type) { if ("dsa" !== d) throw new Error("wrong private key type"); return function(t, n, r) { var i, a = n.params.priv_key, s = n.params.p, u = n.params.q, d = n.params.g, p = new o(0), g = f(t, u).mod(u), y = !1, b = c(a, u, t, r); for (; !1 === y;) i = l(u, b, r), p = h(d, i, s, u), 0 === (y = i.invm(u).imul(g.add(a.mul(p))).mod(u)).cmpn(0) && (y = !1, p = new o(0)); return function(t, n) { t = t.toArray(), n = n.toArray(), 128 & t[0] && (t = [0].concat(t)); 128 & n[0] && (n = [0].concat(n)); var r = [48, t.length + n.length + 4, 2, t.length]; return r = r.concat(t, [2, n.length], n), new e(r) }(p, y) }(t, g, r) } if ("rsa" !== d && "ecdsa/rsa" !== d) throw new Error("wrong private key type"); t = e.concat([p, t]); for (var y = g.modulus.byteLength(), b = [0, 1]; t.length + b.length + 1 < y;) b.push(255); b.push(0); for (var v = -1; ++v < t.length;) b.push(t[v]); return i(b, g) }, t.exports.getKey = c, t.exports.makeKey = l }).call(this, n(8).Buffer) }, function(t) { t.exports = JSON.parse('{"name":"elliptic","version":"6.5.2","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny <fedor@indutny.com>","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}') }, function(t, e, n) { "use strict"; var r = n(17), i = n(5), a = n(2), o = n(81), s = r.assert; function u(t) { o.call(this, "short", t), this.a = new i(t.a, 16).toRed(this.red), this.b = new i(t.b, 16).toRed(this.red), this.tinv = this.two.redInvm(), this.zeroA = 0 === this.a.fromRed().cmpn(0), this.threeA = 0 === this.a.fromRed().sub(this.p).cmpn(-3), this.endo = this._getEndomorphism(t), this._endoWnafT1 = new Array(4), this._endoWnafT2 = new Array(4) } function c(t, e, n, r) { o.BasePoint.call(this, t, "affine"), null === e && null === n ? (this.x = null, this.y = null, this.inf = !0) : (this.x = new i(e, 16), this.y = new i(n, 16), r && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.inf = !1) } function f(t, e, n, r) { o.BasePoint.call(this, t, "jacobian"), null === e && null === n && null === r ? (this.x = this.curve.one, this.y = this.curve.one, this.z = new i(0)) : (this.x = new i(e, 16), this.y = new i(n, 16), this.z = new i(r, 16)), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red)), this.zOne = this.z === this.curve.one } a(u, o), t.exports = u, u.prototype._getEndomorphism = function(t) { if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) { var e, n; if (t.beta) e = new i(t.beta, 16).toRed(this.red); else { var r = this._getEndoRoots(this.p); e = (e = r[0].cmp(r[1]) < 0 ? r[0] : r[1]).toRed(this.red) } if (t.lambda) n = new i(t.lambda, 16); else { var a = this._getEndoRoots(this.n); 0 === this.g.mul(a[0]).x.cmp(this.g.x.redMul(e)) ? n = a[0] : (n = a[1], s(0 === this.g.mul(n).x.cmp(this.g.x.redMul(e)))) } return { beta: e, lambda: n, basis: t.basis ? t.basis.map((function(t) { return { a: new i(t.a, 16), b: new i(t.b, 16) } })) : this._getEndoBasis(n) } } }, u.prototype._getEndoRoots = function(t) { var e = t === this.p ? this.red : i.mont(t), n = new i(2).toRed(e).redInvm(), r = n.redNeg(), a = new i(3).toRed(e).redNeg().redSqrt().redMul(n); return [r.redAdd(a).fromRed(), r.redSub(a).fromRed()] }, u.prototype._getEndoBasis = function(t) { for (var e, n, r, a, o, s, u, c, f, l = this.n.ushrn(Math.floor(this.n.bitLength() / 2)), h = t, d = this.n.clone(), p = new i(1), g = new i(0), y = new i(0), b = new i(1), v = 0; 0 !== h.cmpn(0);) { var m = d.div(h); c = d.sub(m.mul(h)), f = y.sub(m.mul(p)); var _ = b.sub(m.mul(g)); if (!r && c.cmp(l) < 0) e = u.neg(), n = p, r = c.neg(), a = f; else if (r && 2 == ++v) break; u = c, d = h, h = c, y = p, p = f, b = g, g = _ } o = c.neg(), s = f; var w = r.sqr().add(a.sqr()); return o.sqr().add(s.sqr()).cmp(w) >= 0 && (o = e, s = n), r.negative && (r = r.neg(), a = a.neg()), o.negative && (o = o.neg(), s = s.neg()), [{ a: r, b: a }, { a: o, b: s }] }, u.prototype._endoSplit = function(t) { var e = this.endo.basis, n = e[0], r = e[1], i = r.b.mul(t).divRound(this.n), a = n.b.neg().mul(t).divRound(this.n), o = i.mul(n.a), s = a.mul(r.a), u = i.mul(n.b), c = a.mul(r.b); return { k1: t.sub(o).sub(s), k2: u.add(c).neg() } }, u.prototype.pointFromX = function(t, e) { (t = new i(t, 16)).red || (t = t.toRed(this.red)); var n = t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b), r = n.redSqrt(); if (0 !== r.redSqr().redSub(n).cmp(this.zero)) throw new Error("invalid point"); var a = r.fromRed().isOdd(); return (e && !a || !e && a) && (r = r.redNeg()), this.point(t, r) }, u.prototype.validate = function(t) { if (t.inf) return !0; var e = t.x, n = t.y, r = this.a.redMul(e), i = e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b); return 0 === n.redSqr().redISub(i).cmpn(0) }, u.prototype._endoWnafMulAdd = function(t, e, n) { for (var r = this._endoWnafT1, i = this._endoWnafT2, a = 0; a < t.length; a++) { var o = this._endoSplit(e[a]), s = t[a], u = s._getBeta(); o.k1.negative && (o.k1.ineg(), s = s.neg(!0)), o.k2.negative && (o.k2.ineg(), u = u.neg(!0)), r[2 * a] = s, r[2 * a + 1] = u, i[2 * a] = o.k1, i[2 * a + 1] = o.k2 } for (var c = this._wnafMulAdd(1, r, i, 2 * a, n), f = 0; f < 2 * a; f++) r[f] = null, i[f] = null; return c }, a(c, o.BasePoint), u.prototype.point = function(t, e, n) { return new c(this, t, e, n) }, u.prototype.pointFromJSON = function(t, e) { return c.fromJSON(this, t, e) }, c.prototype._getBeta = function() { if (this.curve.endo) { var t = this.precomputed; if (t && t.beta) return t.beta; var e = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); if (t) { var n = this.curve, r = function(t) { return n.point(t.x.redMul(n.endo.beta), t.y) }; t.beta = e, e.precomputed = { beta: null, naf: t.naf && { wnd: t.naf.wnd, points: t.naf.points.map(r) }, doubles: t.doubles && { step: t.doubles.step, points: t.doubles.points.map(r) } } } return e } }, c.prototype.toJSON = function() { return this.precomputed ? [this.x, this.y, this.precomputed && { doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) } }] : [this.x, this.y] }, c.fromJSON = function(t, e, n) { "string" == typeof e && (e = JSON.parse(e)); var r = t.point(e[0], e[1], n); if (!e[2]) return r; function i(e) { return t.point(e[0], e[1], n) } var a = e[2]; return r.precomputed = { beta: null, doubles: a.doubles && { step: a.doubles.step, points: [r].concat(a.doubles.points.map(i)) }, naf: a.naf && { wnd: a.naf.wnd, points: [r].concat(a.naf.points.map(i)) } }, r }, c.prototype.inspect = function() { return this.isInfinity() ? "<EC Point Infinity>" : "<EC Point x: " + this.x.fromRed().toString(16, 2) + " y: " + this.y.fromRed().toString(16, 2) + ">" }, c.prototype.isInfinity = function() { return this.inf }, c.prototype.add = function(t) { if (this.inf) return t; if (t.inf) return this; if (this.eq(t)) return this.dbl(); if (this.neg().eq(t)) return this.curve.point(null, null); if (0 === this.x.cmp(t.x)) return this.curve.point(null, null); var e = this.y.redSub(t.y); 0 !== e.cmpn(0) && (e = e.redMul(this.x.redSub(t.x).redInvm())); var n = e.redSqr().redISub(this.x).redISub(t.x), r = e.redMul(this.x.redSub(n)).redISub(this.y); return this.curve.point(n, r) }, c.prototype.dbl = function() { if (this.inf) return this; var t = this.y.redAdd(this.y); if (0 === t.cmpn(0)) return this.curve.point(null, null); var e = this.curve.a, n = this.x.redSqr(), r = t.redInvm(), i = n.redAdd(n).redIAdd(n).redIAdd(e).redMul(r), a = i.redSqr().redISub(this.x.redAdd(this.x)), o = i.redMul(this.x.redSub(a)).redISub(this.y); return this.curve.point(a, o) }, c.prototype.getX = function() { return this.x.fromRed() }, c.prototype.getY = function() { return this.y.fromRed() }, c.prototype.mul = function(t) { return t = new i(t, 16), this.isInfinity() ? this : this._hasDoubles(t) ? this.curve._fixedNafMul(this, t) : this.curve.endo ? this.curve._endoWnafMulAdd([this], [t]) : this.curve._wnafMul(this, t) }, c.prototype.mulAdd = function(t, e, n) { var r = [this, e], i = [t, n]; return this.curve.endo ? this.curve._endoWnafMulAdd(r, i) : this.curve._wnafMulAdd(1, r, i, 2) }, c.prototype.jmulAdd = function(t, e, n) { var r = [this, e], i = [t, n]; return this.curve.endo ? this.curve._endoWnafMulAdd(r, i, !0) : this.curve._wnafMulAdd(1, r, i, 2, !0) }, c.prototype.eq = function(t) { return this === t || this.inf === t.inf && (this.inf || 0 === this.x.cmp(t.x) && 0 === this.y.cmp(t.y)) }, c.prototype.neg = function(t) { if (this.inf) return this; var e = this.curve.point(this.x, this.y.redNeg()); if (t && this.precomputed) { var n = this.precomputed, r = function(t) { return t.neg() }; e.precomputed = { naf: n.naf && { wnd: n.naf.wnd, points: n.naf.points.map(r) }, doubles: n.doubles && { step: n.doubles.step, points: n.doubles.points.map(r) } } } return e }, c.prototype.toJ = function() { return this.inf ? this.curve.jpoint(null, null, null) : this.curve.jpoint(this.x, this.y, this.curve.one) }, a(f, o.BasePoint), u.prototype.jpoint = function(t, e, n) { return new f(this, t, e, n) }, f.prototype.toP = function() { if (this.isInfinity()) return this.curve.point(null, null); var t = this.z.redInvm(), e = t.redSqr(), n = this.x.redMul(e), r = this.y.redMul(e).redMul(t); return this.curve.point(n, r) }, f.prototype.neg = function() { return this.curve.jpoint(this.x, this.y.redNeg(), this.z) }, f.prototype.add = function(t) { if (this.isInfinity()) return t; if (t.isInfinity()) return this; var e = t.z.redSqr(), n = this.z.redSqr(), r = this.x.redMul(e), i = t.x.redMul(n), a = this.y.redMul(e.redMul(t.z)), o = t.y.redMul(n.redMul(this.z)), s = r.redSub(i), u = a.redSub(o); if (0 === s.cmpn(0)) return 0 !== u.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl(); var c = s.redSqr(), f = c.redMul(s), l = r.redMul(c), h = u.redSqr().redIAdd(f).redISub(l).redISub(l), d = u.redMul(l.redISub(h)).redISub(a.redMul(f)), p = this.z.redMul(t.z).redMul(s); return this.curve.jpoint(h, d, p) }, f.prototype.mixedAdd = function(t) { if (this.isInfinity()) return t.toJ(); if (t.isInfinity()) return this; var e = this.z.redSqr(), n = this.x, r = t.x.redMul(e), i = this.y, a = t.y.redMul(e).redMul(this.z), o = n.redSub(r), s = i.redSub(a); if (0 === o.cmpn(0)) return 0 !== s.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl(); var u = o.redSqr(), c = u.redMul(o), f = n.redMul(u), l = s.redSqr().redIAdd(c).redISub(f).redISub(f), h = s.redMul(f.redISub(l)).redISub(i.redMul(c)), d = this.z.redMul(o); return this.curve.jpoint(l, h, d) }, f.prototype.dblp = function(t) { if (0 === t) return this; if (this.isInfinity()) return this; if (!t) return this.dbl(); if (this.curve.zeroA || this.curve.threeA) { for (var e = this, n = 0; n < t; n++) e = e.dbl(); return e } var r = this.curve.a, i = this.curve.tinv, a = this.x, o = this.y, s = this.z, u = s.redSqr().redSqr(), c = o.redAdd(o); for (n = 0; n < t; n++) { var f = a.redSqr(), l = c.redSqr(), h = l.redSqr(), d = f.redAdd(f).redIAdd(f).redIAdd(r.redMul(u)), p = a.redMul(l), g = d.redSqr().redISub(p.redAdd(p)), y = p.redISub(g), b = d.redMul(y); b = b.redIAdd(b).redISub(h); var v = c.redMul(s); n + 1 < t && (u = u.redMul(h)), a = g, s = v, c = b } return this.curve.jpoint(a, c.redMul(i), s) }, f.prototype.dbl = function() { return this.isInfinity() ? this : this.curve.zeroA ? this._zeroDbl() : this.curve.threeA ? this._threeDbl() : this._dbl() }, f.prototype._zeroDbl = function() { var t, e, n; if (this.zOne) { var r = this.x.redSqr(), i = this.y.redSqr(), a = i.redSqr(), o = this.x.redAdd(i).redSqr().redISub(r).redISub(a); o = o.redIAdd(o); var s = r.redAdd(r).redIAdd(r), u = s.redSqr().redISub(o).redISub(o), c = a.redIAdd(a); c = (c = c.redIAdd(c)).redIAdd(c), t = u, e = s.redMul(o.redISub(u)).redISub(c), n = this.y.redAdd(this.y) } else { var f = this.x.redSqr(), l = this.y.redSqr(), h = l.redSqr(), d = this.x.redAdd(l).redSqr().redISub(f).redISub(h); d = d.redIAdd(d); var p = f.redAdd(f).redIAdd(f), g = p.redSqr(), y = h.redIAdd(h); y = (y = y.redIAdd(y)).redIAdd(y), t = g.redISub(d).redISub(d), e = p.redMul(d.redISub(t)).redISub(y), n = (n = this.y.redMul(this.z)).redIAdd(n) } return this.curve.jpoint(t, e, n) }, f.prototype._threeDbl = function() { var t, e, n; if (this.zOne) { var r = this.x.redSqr(), i = this.y.redSqr(), a = i.redSqr(), o = this.x.redAdd(i).redSqr().redISub(r).redISub(a); o = o.redIAdd(o); var s = r.redAdd(r).redIAdd(r).redIAdd(this.curve.a), u = s.redSqr().redISub(o).redISub(o); t = u; var c = a.redIAdd(a); c = (c = c.redIAdd(c)).redIAdd(c), e = s.redMul(o.redISub(u)).redISub(c), n = this.y.redAdd(this.y) } else { var f = this.z.redSqr(), l = this.y.redSqr(), h = this.x.redMul(l), d = this.x.redSub(f).redMul(this.x.redAdd(f)); d = d.redAdd(d).redIAdd(d); var p = h.redIAdd(h), g = (p = p.redIAdd(p)).redAdd(p); t = d.redSqr().redISub(g), n = this.y.redAdd(this.z).redSqr().redISub(l).redISub(f); var y = l.redSqr(); y = (y = (y = y.redIAdd(y)).redIAdd(y)).redIAdd(y), e = d.redMul(p.redISub(t)).redISub(y) } return this.curve.jpoint(t, e, n) }, f.prototype._dbl = function() { var t = this.curve.a, e = this.x, n = this.y, r = this.z, i = r.redSqr().redSqr(), a = e.redSqr(), o = n.redSqr(), s = a.redAdd(a).redIAdd(a).redIAdd(t.redMul(i)), u = e.redAdd(e), c = (u = u.redIAdd(u)).redMul(o), f = s.redSqr().redISub(c.redAdd(c)), l = c.redISub(f), h = o.redSqr(); h = (h = (h = h.redIAdd(h)).redIAdd(h)).redIAdd(h); var d = s.redMul(l).redISub(h), p = n.redAdd(n).redMul(r); return this.curve.jpoint(f, d, p) }, f.prototype.trpl = function() { if (!this.curve.zeroA) return this.dbl().add(this); var t = this.x.redSqr(), e = this.y.redSqr(), n = this.z.redSqr(), r = e.redSqr(), i = t.redAdd(t).redIAdd(t), a = i.redSqr(), o = this.x.redAdd(e).redSqr().redISub(t).redISub(r), s = (o = (o = (o = o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(), u = r.redIAdd(r); u = (u = (u = u.redIAdd(u)).redIAdd(u)).redIAdd(u); var c = i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u), f = e.redMul(c); f = (f = f.redIAdd(f)).redIAdd(f); var l = this.x.redMul(s).redISub(f); l = (l = l.redIAdd(l)).redIAdd(l); var h = this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s))); h = (h = (h = h.redIAdd(h)).redIAdd(h)).redIAdd(h); var d = this.z.redAdd(o).redSqr().redISub(n).redISub(s); return this.curve.jpoint(l, h, d) }, f.prototype.mul = function(t, e) { return t = new i(t, e), this.curve._wnafMul(this, t) }, f.prototype.eq = function(t) { if ("affine" === t.type) return this.eq(t.toJ()); if (this === t) return !0; var e = this.z.redSqr(), n = t.z.redSqr(); if (0 !== this.x.redMul(n).redISub(t.x.redMul(e)).cmpn(0)) return !1; var r = e.redMul(this.z), i = n.redMul(t.z); return 0 === this.y.redMul(i).redISub(t.y.redMul(r)).cmpn(0) }, f.prototype.eqXToP = function(t) { var e = this.z.redSqr(), n = t.toRed(this.curve.red).redMul(e); if (0 === this.x.cmp(n)) return !0; for (var r = t.clone(), i = this.curve.redN.redMul(e);;) { if (r.iadd(this.curve.n), r.cmp(this.curve.p) >= 0) return !1; if (n.redIAdd(i), 0 === this.x.cmp(n)) return !0 } }, f.prototype.inspect = function() { return this.isInfinity() ? "<EC JPoint Infinity>" : "<EC JPoint x: " + this.x.toString(16, 2) + " y: " + this.y.toString(16, 2) + " z: " + this.z.toString(16, 2) + ">" }, f.prototype.isInfinity = function() { return 0 === this.z.cmpn(0) } }, function(t, e, n) { "use strict"; var r = n(5), i = n(2), a = n(81), o = n(17); function s(t) { a.call(this, "mont", t), this.a = new r(t.a, 16).toRed(this.red), this.b = new r(t.b, 16).toRed(this.red), this.i4 = new r(4).toRed(this.red).redInvm(), this.two = new r(2).toRed(this.red), this.a24 = this.i4.redMul(this.a.redAdd(this.two)) } function u(t, e, n) { a.BasePoint.call(this, t, "projective"), null === e && null === n ? (this.x = this.curve.one, this.z = this.curve.zero) : (this.x = new r(e, 16), this.z = new r(n, 16), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red))) } i(s, a), t.exports = s, s.prototype.validate = function(t) { var e = t.normalize().x, n = e.redSqr(), r = n.redMul(e).redAdd(n.redMul(this.a)).redAdd(e); return 0 === r.redSqrt().redSqr().cmp(r) }, i(u, a.BasePoint), s.prototype.decodePoint = function(t, e) { return this.point(o.toArray(t, e), 1) }, s.prototype.point = function(t, e) { return new u(this, t, e) }, s.prototype.pointFromJSON = function(t) { return u.fromJSON(this, t) }, u.prototype.precompute = function() {}, u.prototype._encode = function() { return this.getX().toArray("be", this.curve.p.byteLength()) }, u.fromJSON = function(t, e) { return new u(t, e[0], e[1] || t.one) }, u.prototype.inspect = function() { return this.isInfinity() ? "<EC Point Infinity>" : "<EC Point x: " + this.x.fromRed().toString(16, 2) + " z: " + this.z.fromRed().toString(16, 2) + ">" }, u.prototype.isInfinity = function() { return 0 === this.z.cmpn(0) }, u.prototype.dbl = function() { var t = this.x.redAdd(this.z).redSqr(), e = this.x.redSub(this.z).redSqr(), n = t.redSub(e), r = t.redMul(e), i = n.redMul(e.redAdd(this.curve.a24.redMul(n))); return this.curve.point(r, i) }, u.prototype.add = function() { throw new Error("Not supported on Montgomery curve") }, u.prototype.diffAdd = function(t, e) { var n = this.x.redAdd(this.z), r = this.x.redSub(this.z), i = t.x.redAdd(t.z), a = t.x.redSub(t.z).redMul(n), o = i.redMul(r), s = e.z.redMul(a.redAdd(o).redSqr()), u = e.x.redMul(a.redISub(o).redSqr()); return this.curve.point(s, u) }, u.prototype.mul = function(t) { for (var e = t.clone(), n = this, r = this.curve.point(null, null), i = []; 0 !== e.cmpn(0); e.iushrn(1)) i.push(e.andln(1)); for (var a = i.length - 1; a >= 0; a--) 0 === i[a] ? (n = n.diffAdd(r, this), r = r.dbl()) : (r = n.diffAdd(r, this), n = n.dbl()); return r }, u.prototype.mulAdd = function() { throw new Error("Not supported on Montgomery curve") }, u.prototype.jumlAdd = function() { throw new Error("Not supported on Montgomery curve") }, u.prototype.eq = function(t) { return 0 === this.getX().cmp(t.getX()) }, u.prototype.normalize = function() { return this.x = this.x.redMul(this.z.redInvm()), this.z = this.curve.one, this }, u.prototype.getX = function() { return this.normalize(), this.x.fromRed() } }, function(t, e, n) { "use strict"; var r = n(17), i = n(5), a = n(2), o = n(81), s = r.assert; function u(t) { this.twisted = 1 != (0 | t.a), this.mOneA = this.twisted && -1 == (0 | t.a), this.extended = this.mOneA, o.call(this, "edwards", t), this.a = new i(t.a, 16).umod(this.red.m), this.a = this.a.toRed(this.red), this.c = new i(t.c, 16).toRed(this.red), this.c2 = this.c.redSqr(), this.d = new i(t.d, 16).toRed(this.red), this.dd = this.d.redAdd(this.d), s(!this.twisted || 0 === this.c.fromRed().cmpn(1)), this.oneC = 1 == (0 | t.c) } function c(t, e, n, r, a) { o.BasePoint.call(this, t, "projective"), null === e && null === n && null === r ? (this.x = this.curve.zero, this.y = this.curve.one, this.z = this.curve.one, this.t = this.curve.zero, this.zOne = !0) : (this.x = new i(e, 16), this.y = new i(n, 16), this.z = r ? new i(r, 16) : this.curve.one, this.t = a && new i(a, 16), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red)), this.t && !this.t.red && (this.t = this.t.toRed(this.curve.red)), this.zOne = this.z === this.curve.one, this.curve.extended && !this.t && (this.t = this.x.redMul(this.y), this.zOne || (this.t = this.t.redMul(this.z.redInvm())))) } a(u, o), t.exports = u, u.prototype._mulA = function(t) { return this.mOneA ? t.redNeg() : this.a.redMul(t) }, u.prototype._mulC = function(t) { return this.oneC ? t : this.c.redMul(t) }, u.prototype.jpoint = function(t, e, n, r) { return this.point(t, e, n, r) }, u.prototype.pointFromX = function(t, e) { (t = new i(t, 16)).red || (t = t.toRed(this.red)); var n = t.redSqr(), r = this.c2.redSub(this.a.redMul(n)), a = this.one.redSub(this.c2.redMul(this.d).redMul(n)), o = r.redMul(a.redInvm()), s = o.redSqrt(); if (0 !== s.redSqr().redSub(o).cmp(this.zero)) throw new Error("invalid point"); var u = s.fromRed().isOdd(); return (e && !u || !e && u) && (s = s.redNeg()), this.point(t, s) }, u.prototype.pointFromY = function(t, e) { (t = new i(t, 16)).red || (t = t.toRed(this.red)); var n = t.redSqr(), r = n.redSub(this.c2), a = n.redMul(this.d).redMul(this.c2).redSub(this.a), o = r.redMul(a.redInvm()); if (0 === o.cmp(this.zero)) { if (e) throw new Error("invalid point"); return this.point(this.zero, t) } var s = o.redSqrt(); if (0 !== s.redSqr().redSub(o).cmp(this.zero)) throw new Error("invalid point"); return s.fromRed().isOdd() !== e && (s = s.redNeg()), this.point(s, t) }, u.prototype.validate = function(t) { if (t.isInfinity()) return !0; t.normalize(); var e = t.x.redSqr(), n = t.y.redSqr(), r = e.redMul(this.a).redAdd(n), i = this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(n))); return 0 === r.cmp(i) }, a(c, o.BasePoint), u.prototype.pointFromJSON = function(t) { return c.fromJSON(this, t) }, u.prototype.point = function(t, e, n, r) { return new c(this, t, e, n, r) }, c.fromJSON = function(t, e) { return new c(t, e[0], e[1], e[2]) }, c.prototype.inspect = function() { return this.isInfinity() ? "<EC Point Infinity>" : "<EC Point x: " + this.x.fromRed().toString(16, 2) + " y: " + this.y.fromRed().toString(16, 2) + " z: " + this.z.fromRed().toString(16, 2) + ">" }, c.prototype.isInfinity = function() { return 0 === this.x.cmpn(0) && (0 === this.y.cmp(this.z) || this.zOne && 0 === this.y.cmp(this.curve.c)) }, c.prototype._extDbl = function() { var t = this.x.redSqr(), e = this.y.redSqr(), n = this.z.redSqr(); n = n.redIAdd(n); var r = this.curve._mulA(t), i = this.x.redAdd(this.y).redSqr().redISub(t).redISub(e), a = r.redAdd(e), o = a.redSub(n), s = r.redSub(e), u = i.redMul(o), c = a.redMul(s), f = i.redMul(s), l = o.redMul(a); return this.curve.point(u, c, l, f) }, c.prototype._projDbl = function() { var t, e, n, r = this.x.redAdd(this.y).redSqr(), i = this.x.redSqr(), a = this.y.redSqr(); if (this.curve.twisted) { var o = (c = this.curve._mulA(i)).redAdd(a); if (this.zOne) t = r.redSub(i).redSub(a).redMul(o.redSub(this.curve.two)), e = o.redMul(c.redSub(a)), n = o.redSqr().redSub(o).redSub(o); else { var s = this.z.redSqr(), u = o.redSub(s).redISub(s); t = r.redSub(i).redISub(a).redMul(u), e = o.redMul(c.redSub(a)), n = o.redMul(u) } } else { var c = i.redAdd(a); s = this.curve._mulC(this.z).redSqr(), u = c.redSub(s).redSub(s); t = this.curve._mulC(r.redISub(c)).redMul(u), e = this.curve._mulC(c).redMul(i.redISub(a)), n = c.redMul(u) } return this.curve.point(t, e, n) }, c.prototype.dbl = function() { return this.isInfinity() ? this : this.curve.extended ? this._extDbl() : this._projDbl() }, c.prototype._extAdd = function(t) { var e = this.y.redSub(this.x).redMul(t.y.redSub(t.x)), n = this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)), r = this.t.redMul(this.curve.dd).redMul(t.t), i = this.z.redMul(t.z.redAdd(t.z)), a = n.redSub(e), o = i.redSub(r), s = i.redAdd(r), u = n.redAdd(e), c = a.redMul(o), f = s.redMul(u), l = a.redMul(u), h = o.redMul(s); return this.curve.point(c, f, h, l) }, c.prototype._projAdd = function(t) { var e, n, r = this.z.redMul(t.z), i = r.redSqr(), a = this.x.redMul(t.x), o = this.y.redMul(t.y), s = this.curve.d.redMul(a).redMul(o), u = i.redSub(s), c = i.redAdd(s), f = this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(a).redISub(o), l = r.redMul(u).redMul(f); return this.curve.twisted ? (e = r.redMul(c).redMul(o.redSub(this.curve._mulA(a))), n = u.redMul(c)) : (e = r.redMul(c).redMul(o.redSub(a)), n = this.curve._mulC(u).redMul(c)), this.curve.point(l, e, n) }, c.prototype.add = function(t) { return this.isInfinity() ? t : t.isInfinity() ? this : this.curve.extended ? this._extAdd(t) : this._projAdd(t) }, c.prototype.mul = function(t) { return this._hasDoubles(t) ? this.curve._fixedNafMul(this, t) : this.curve._wnafMul(this, t) }, c.prototype.mulAdd = function(t, e, n) { return this.curve._wnafMulAdd(1, [this, e], [t, n], 2, !1) }, c.prototype.jmulAdd = function(t, e, n) { return this.curve._wnafMulAdd(1, [this, e], [t, n], 2, !0) }, c.prototype.normalize = function() { if (this.zOne) return this; var t = this.z.redInvm(); return this.x = this.x.redMul(t), this.y = this.y.redMul(t), this.t && (this.t = this.t.redMul(t)), this.z = this.curve.one, this.zOne = !0, this }, c.prototype.neg = function() { return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()) }, c.prototype.getX = function() { return this.normalize(), this.x.fromRed() }, c.prototype.getY = function() { return this.normalize(), this.y.fromRed() }, c.prototype.eq = function(t) { return this === t || 0 === this.getX().cmp(t.getX()) && 0 === this.getY().cmp(t.getY()) }, c.prototype.eqXToP = function(t) { var e = t.toRed(this.curve.red).redMul(this.z); if (0 === this.x.cmp(e)) return !0; for (var n = t.clone(), r = this.curve.redN.redMul(this.z);;) { if (n.iadd(this.curve.n), n.cmp(this.curve.p) >= 0) return !1; if (e.redIAdd(r), 0 === this.x.cmp(e)) return !0 } }, c.prototype.toP = c.prototype.normalize, c.prototype.mixedAdd = c.prototype.add }, function(t, e, n) { "use strict"; e.sha1 = n(468), e.sha224 = n(469), e.sha256 = n(218), e.sha384 = n(470), e.sha512 = n(219) }, function(t, e, n) { "use strict"; var r = n(21), i = n(56), a = n(217), o = r.rotl32, s = r.sum32, u = r.sum32_5, c = a.ft_1, f = i.BlockHash, l = [1518500249, 1859775393, 2400959708, 3395469782]; function h() { if (!(this instanceof h)) return new h; f.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520], this.W = new Array(80) } r.inherits(h, f), t.exports = h, h.blockSize = 512, h.outSize = 160, h.hmacStrength = 80, h.padLength = 64, h.prototype._update = function(t, e) { for (var n = this.W, r = 0; r < 16; r++) n[r] = t[e + r]; for (; r < n.length; r++) n[r] = o(n[r - 3] ^ n[r - 8] ^ n[r - 14] ^ n[r - 16], 1); var i = this.h[0], a = this.h[1], f = this.h[2], h = this.h[3], d = this.h[4]; for (r = 0; r < n.length; r++) { var p = ~~(r / 20), g = u(o(i, 5), c(p, a, f, h), d, n[r], l[p]); d = h, h = f, f = o(a, 30), a = i, i = g } this.h[0] = s(this.h[0], i), this.h[1] = s(this.h[1], a), this.h[2] = s(this.h[2], f), this.h[3] = s(this.h[3], h), this.h[4] = s(this.h[4], d) }, h.prototype._digest = function(t) { return "hex" === t ? r.toHex32(this.h, "big") : r.split32(this.h, "big") } }, function(t, e, n) { "use strict"; var r = n(21), i = n(218); function a() { if (!(this instanceof a)) return new a; i.call(this), this.h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428] } r.inherits(a, i), t.exports = a, a.blockSize = 512, a.outSize = 224, a.hmacStrength = 192, a.padLength = 64, a.prototype._digest = function(t) { return "hex" === t ? r.toHex32(this.h.slice(0, 7), "big") : r.split32(this.h.slice(0, 7), "big") } }, function(t, e, n) { "use strict"; var r = n(21), i = n(219); function a() { if (!(this instanceof a)) return new a; i.call(this), this.h = [3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, 4144912697, 1731405415, 4290775857, 2394180231, 1750603025, 3675008525, 1694076839, 1203062813, 3204075428] } r.inherits(a, i), t.exports = a, a.blockSize = 1024, a.outSize = 384, a.hmacStrength = 192, a.padLength = 128, a.prototype._digest = function(t) { return "hex" === t ? r.toHex32(this.h.slice(0, 12), "big") : r.split32(this.h.slice(0, 12), "big") } }, function(t, e, n) { "use strict"; var r = n(21), i = n(56), a = r.rotl32, o = r.sum32, s = r.sum32_3, u = r.sum32_4, c = i.BlockHash; function f() { if (!(this instanceof f)) return new f; c.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520], this.endian = "little" } function l(t, e, n, r) { return t <= 15 ? e ^ n ^ r : t <= 31 ? e & n | ~e & r : t <= 47 ? (e | ~n) ^ r : t <= 63 ? e & r | n & ~r : e ^ (n | ~r) } function h(t) { return t <= 15 ? 0 : t <= 31 ? 1518500249 : t <= 47 ? 1859775393 : t <= 63 ? 2400959708 : 2840853838 } function d(t) { return t <= 15 ? 1352829926 : t <= 31 ? 1548603684 : t <= 47 ? 1836072691 : t <= 63 ? 2053994217 : 0 } r.inherits(f, c), e.ripemd160 = f, f.blockSize = 512, f.outSize = 160, f.hmacStrength = 192, f.padLength = 64, f.prototype._update = function(t, e) { for (var n = this.h[0], r = this.h[1], i = this.h[2], c = this.h[3], f = this.h[4], v = n, m = r, _ = i, w = c, x = f, k = 0; k < 80; k++) { var E = o(a(u(n, l(k, r, i, c), t[p[k] + e], h(k)), y[k]), f); n = f, f = c, c = a(i, 10), i = r, r = E, E = o(a(u(v, l(79 - k, m, _, w), t[g[k] + e], d(k)), b[k]), x), v = x, x = w, w = a(_, 10), _ = m, m = E } E = s(this.h[1], i, w), this.h[1] = s(this.h[2], c, x), this.h[2] = s(this.h[3], f, v), this.h[3] = s(this.h[4], n, m), this.h[4] = s(this.h[0], r, _), this.h[0] = E }, f.prototype._digest = function(t) { return "hex" === t ? r.toHex32(this.h, "little") : r.split32(this.h, "little") }; var p = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13], g = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11], y = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6], b = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11] }, function(t, e, n) { "use strict"; var r = n(21), i = n(16); function a(t, e, n) { if (!(this instanceof a)) return new a(t, e, n); this.Hash = t, this.blockSize = t.blockSize / 8, this.outSize = t.outSize / 8, this.inner = null, this.outer = null, this._init(r.toArray(e, n)) } t.exports = a, a.prototype._init = function(t) { t.length > this.blockSize && (t = (new this.Hash).update(t).digest()), i(t.length <= this.blockSize); for (var e = t.length; e < this.blockSize; e++) t.push(0); for (e = 0; e < t.length; e++) t[e] ^= 54; for (this.inner = (new this.Hash).update(t), e = 0; e < t.length; e++) t[e] ^= 106; this.outer = (new this.Hash).update(t) }, a.prototype.update = function(t, e) { return this.inner.update(t, e), this }, a.prototype.digest = function(t) { return this.outer.update(this.inner.digest()), this.outer.digest(t) } }, function(t, e) { t.exports = { doubles: { step: 4, points: [ ["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a", "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"], ["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"], ["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739", "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"], ["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"], ["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c", "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"], ["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda", "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"], ["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa", "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"], ["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0", "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"], ["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d", "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"], ["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d", "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"], ["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1", "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"], ["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0", "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"], ["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047", "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"], ["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862", "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"], ["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7", "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"], ["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd", "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"], ["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83", "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"], ["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a", "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"], ["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8", "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"], ["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d", "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"], ["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725", "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"], ["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754", "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"], ["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c", "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"], ["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6", "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"], ["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39", "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"], ["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891", "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"], ["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b", "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"], ["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03", "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"], ["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d", "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"], ["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070", "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"], ["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4", "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"], ["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da", "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"], ["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11", "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"], ["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e", "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"], ["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41", "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"], ["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef", "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"], ["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8", "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"], ["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d", "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"], ["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96", "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"], ["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd", "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"], ["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5", "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"], ["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266", "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"], ["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71", "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"], ["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac", "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"], ["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751", "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"], ["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e", "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"], ["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241", "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"], ["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3", "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"], ["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f", "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"], ["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19", "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"], ["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be", "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"], ["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9", "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"], ["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2", "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"], ["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13", "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"], ["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c", "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"], ["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba", "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"], ["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151", "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"], ["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073", "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"], ["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458", "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"], ["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b", "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"], ["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366", "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"], ["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa", "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"], ["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0", "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"], ["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787", "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"], ["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e", "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"] ] }, naf: { wnd: 7, points: [ ["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9", "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"], ["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4", "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"], ["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc", "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"], ["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe", "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"], ["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb", "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"], ["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8", "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"], ["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e", "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"], ["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34", "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"], ["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c", "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"], ["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5", "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"], ["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f", "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"], ["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714", "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"], ["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729", "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"], ["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db", "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"], ["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4", "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"], ["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5", "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"], ["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479", "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"], ["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d", "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"], ["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f", "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"], ["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb", "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"], ["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9", "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"], ["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963", "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"], ["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74", "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"], ["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530", "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"], ["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b", "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"], ["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247", "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"], ["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1", "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"], ["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120", "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"], ["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435", "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"], ["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18", "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"], ["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8", "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"], ["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb", "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"], ["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f", "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"], ["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143", "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"], ["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba", "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"], ["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45", "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"], ["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a", "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"], ["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e", "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"], ["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8", "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"], ["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c", "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"], ["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519", "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"], ["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab", "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"], ["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca", "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"], ["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf", "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"], ["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610", "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"], ["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4", "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"], ["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c", "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"], ["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940", "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"], ["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980", "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"], ["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3", "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"], ["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf", "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"], ["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63", "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"], ["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448", "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"], ["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf", "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"], ["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5", "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"], ["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6", "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"], ["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5", "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"], ["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99", "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"], ["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51", "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"], ["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5", "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"], ["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5", "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"], ["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997", "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"], ["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881", "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"], ["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5", "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"], ["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66", "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"], ["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726", "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"], ["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede", "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"], ["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94", "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"], ["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31", "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"], ["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51", "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"], ["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252", "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"], ["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5", "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"], ["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b", "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"], ["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4", "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"], ["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f", "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"], ["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889", "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"], ["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246", "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"], ["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984", "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"], ["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a", "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"], ["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030", "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"], ["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197", "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"], ["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593", "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"], ["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef", "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"], ["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38", "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"], ["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a", "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"], ["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111", "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"], ["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502", "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"], ["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea", "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"], ["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26", "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"], ["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986", "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"], ["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e", "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"], ["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4", "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"], ["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda", "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"], ["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859", "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"], ["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f", "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"], ["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c", "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"], ["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942", "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"], ["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a", "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"], ["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80", "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"], ["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d", "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"], ["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1", "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"], ["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63", "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"], ["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352", "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"], ["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193", "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"], ["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00", "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"], ["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58", "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"], ["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7", "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"], ["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8", "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"], ["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e", "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"], ["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d", "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"], ["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b", "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"], ["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f", "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"], ["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6", "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"], ["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297", "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"], ["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a", "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"], ["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c", "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"], ["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52", "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"], ["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb", "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"], ["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065", "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"], ["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917", "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"], ["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9", "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"], ["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3", "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"], ["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57", "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"], ["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66", "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"], ["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8", "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"], ["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721", "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"], ["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180", "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"] ] } } }, function(t, e, n) { "use strict"; var r = n(5), i = n(475), a = n(17), o = n(126), s = n(123), u = a.assert, c = n(476), f = n(477); function l(t) { if (!(this instanceof l)) return new l(t); "string" == typeof t && (u(o.hasOwnProperty(t), "Unknown curve " + t), t = o[t]), t instanceof o.PresetCurve && (t = { curve: t }), this.curve = t.curve.curve, this.n = this.curve.n, this.nh = this.n.ushrn(1), this.g = this.curve.g, this.g = t.curve.g, this.g.precompute(t.curve.n.bitLength() + 1), this.hash = t.hash || t.curve.hash } t.exports = l, l.prototype.keyPair = function(t) { return new c(this, t) }, l.prototype.keyFromPrivate = function(t, e) { return c.fromPrivate(this, t, e) }, l.prototype.keyFromPublic = function(t, e) { return c.fromPublic(this, t, e) }, l.prototype.genKeyPair = function(t) { t || (t = {}); for (var e = new i({ hash: this.hash, pers: t.pers, persEnc: t.persEnc || "utf8", entropy: t.entropy || s(this.hash.hmacStrength), entropyEnc: t.entropy && t.entropyEnc || "utf8", nonce: this.n.toArray() }), n = this.n.byteLength(), a = this.n.sub(new r(2));;) { var o = new r(e.generate(n)); if (!(o.cmp(a) > 0)) return o.iaddn(1), this.keyFromPrivate(o) } }, l.prototype._truncateToN = function(t, e) { var n = 8 * t.byteLength() - this.n.bitLength(); return n > 0 && (t = t.ushrn(n)), !e && t.cmp(this.n) >= 0 ? t.sub(this.n) : t }, l.prototype.sign = function(t, e, n, a) { "object" == typeof n && (a = n, n = null), a || (a = {}), e = this.keyFromPrivate(e, n), t = this._truncateToN(new r(t, 16)); for (var o = this.n.byteLength(), s = e.getPrivate().toArray("be", o), u = t.toArray("be", o), c = new i({ hash: this.hash, entropy: s, nonce: u, pers: a.pers, persEnc: a.persEnc || "utf8" }), l = this.n.sub(new r(1)), h = 0;; h++) { var d = a.k ? a.k(h) : new r(c.generate(this.n.byteLength())); if (!((d = this._truncateToN(d, !0)).cmpn(1) <= 0 || d.cmp(l) >= 0)) { var p = this.g.mul(d); if (!p.isInfinity()) { var g = p.getX(), y = g.umod(this.n); if (0 !== y.cmpn(0)) { var b = d.invm(this.n).mul(y.mul(e.getPrivate()).iadd(t)); if (0 !== (b = b.umod(this.n)).cmpn(0)) { var v = (p.getY().isOdd() ? 1 : 0) | (0 !== g.cmp(y) ? 2 : 0); return a.canonical && b.cmp(this.nh) > 0 && (b = this.n.sub(b), v ^= 1), new f({ r: y, s: b, recoveryParam: v }) } } } } } }, l.prototype.verify = function(t, e, n, i) { t = this._truncateToN(new r(t, 16)), n = this.keyFromPublic(n, i); var a = (e = new f(e, "hex")).r, o = e.s; if (a.cmpn(1) < 0 || a.cmp(this.n) >= 0) return !1; if (o.cmpn(1) < 0 || o.cmp(this.n) >= 0) return !1; var s, u = o.invm(this.n), c = u.mul(t).umod(this.n), l = u.mul(a).umod(this.n); return this.curve._maxwellTrick ? !(s = this.g.jmulAdd(c, n.getPublic(), l)).isInfinity() && s.eqXToP(a) : !(s = this.g.mulAdd(c, n.getPublic(), l)).isInfinity() && 0 === s.getX().umod(this.n).cmp(a) }, l.prototype.recoverPubKey = function(t, e, n, i) { u((3 & n) === n, "The recovery param is more than two bits"), e = new f(e, i); var a = this.n, o = new r(t), s = e.r, c = e.s, l = 1 & n, h = n >> 1; if (s.cmp(this.curve.p.umod(this.curve.n)) >= 0 && h) throw new Error("Unable to find sencond key candinate"); s = h ? this.curve.pointFromX(s.add(this.curve.n), l) : this.curve.pointFromX(s, l); var d = e.r.invm(a), p = a.sub(o).mul(d).umod(a), g = c.mul(d).umod(a); return this.g.mulAdd(p, s, g) }, l.prototype.getKeyRecoveryParam = function(t, e, n, r) { if (null !== (e = new f(e, r)).recoveryParam) return e.recoveryParam; for (var i = 0; i < 4; i++) { var a; try { a = this.recoverPubKey(t, e, i) } catch (t) { continue } if (a.eq(n)) return i } throw new Error("Unable to find valid recovery factor") } }, function(t, e, n) { "use strict"; var r = n(127), i = n(215), a = n(16); function o(t) { if (!(this instanceof o)) return new o(t); this.hash = t.hash, this.predResist = !!t.predResist, this.outLen = this.hash.outSize, this.minEntropy = t.minEntropy || this.hash.hmacStrength, this._reseed = null, this.reseedInterval = null, this.K = null, this.V = null; var e = i.toArray(t.entropy, t.entropyEnc || "hex"), n = i.toArray(t.nonce, t.nonceEnc || "hex"), r = i.toArray(t.pers, t.persEnc || "hex"); a(e.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this._init(e, n, r) } t.exports = o, o.prototype._init = function(t, e, n) { var r = t.concat(e).concat(n); this.K = new Array(this.outLen / 8), this.V = new Array(this.outLen / 8); for (var i = 0; i < this.V.length; i++) this.K[i] = 0, this.V[i] = 1; this._update(r), this._reseed = 1, this.reseedInterval = 281474976710656 }, o.prototype._hmac = function() { return new r.hmac(this.hash, this.K) }, o.prototype._update = function(t) { var e = this._hmac().update(this.V).update([0]); t && (e = e.update(t)), this.K = e.digest(), this.V = this._hmac().update(this.V).digest(), t && (this.K = this._hmac().update(this.V).update([1]).update(t).digest(), this.V = this._hmac().update(this.V).digest()) }, o.prototype.reseed = function(t, e, n, r) { "string" != typeof e && (r = n, n = e, e = null), t = i.toArray(t, e), n = i.toArray(n, r), a(t.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this._update(t.concat(n || [])), this._reseed = 1 }, o.prototype.generate = function(t, e, n, r) { if (this._reseed > this.reseedInterval) throw new Error("Reseed is required"); "string" != typeof e && (r = n, n = e, e = null), n && (n = i.toArray(n, r || "hex"), this._update(n)); for (var a = []; a.length < t;) this.V = this._hmac().update(this.V).digest(), a = a.concat(this.V); var o = a.slice(0, t); return this._update(n), this._reseed++, i.encode(o, e) } }, function(t, e, n) { "use strict"; var r = n(5), i = n(17).assert; function a(t, e) { this.ec = t, this.priv = null, this.pub = null, e.priv && this._importPrivate(e.priv, e.privEnc), e.pub && this._importPublic(e.pub, e.pubEnc) } t.exports = a, a.fromPublic = function(t, e, n) { return e instanceof a ? e : new a(t, { pub: e, pubEnc: n }) }, a.fromPrivate = function(t, e, n) { return e instanceof a ? e : new a(t, { priv: e, privEnc: n }) }, a.prototype.validate = function() { var t = this.getPublic(); return t.isInfinity() ? { result: !1, reason: "Invalid public key" } : t.validate() ? t.mul(this.ec.curve.n).isInfinity() ? { result: !0, reason: null } : { result: !1, reason: "Public key * N != O" } : { result: !1, reason: "Public key is not a point" } }, a.prototype.getPublic = function(t, e) { return "string" == typeof t && (e = t, t = null), this.pub || (this.pub = this.ec.g.mul(this.priv)), e ? this.pub.encode(e, t) : this.pub }, a.prototype.getPrivate = function(t) { return "hex" === t ? this.priv.toString(16, 2) : this.priv }, a.prototype._importPrivate = function(t, e) { this.priv = new r(t, e || 16), this.priv = this.priv.umod(this.ec.curve.n) }, a.prototype._importPublic = function(t, e) { if (t.x || t.y) return "mont" === this.ec.curve.type ? i(t.x, "Need x coordinate") : "short" !== this.ec.curve.type && "edwards" !== this.ec.curve.type || i(t.x && t.y, "Need both x and y coordinate"), void(this.pub = this.ec.curve.point(t.x, t.y)); this.pub = this.ec.curve.decodePoint(t, e) }, a.prototype.derive = function(t) { return t.mul(this.priv).getX() }, a.prototype.sign = function(t, e, n) { return this.ec.sign(t, this, e, n) }, a.prototype.verify = function(t, e) { return this.ec.verify(t, e, this) }, a.prototype.inspect = function() { return "<Key priv: " + (this.priv && this.priv.toString(16, 2)) + " pub: " + (this.pub && this.pub.inspect()) + " >" } }, function(t, e, n) { "use strict"; var r = n(5), i = n(17), a = i.assert; function o(t, e) { if (t instanceof o) return t; this._importDER(t, e) || (a(t.r && t.s, "Signature without r or s"), this.r = new r(t.r, 16), this.s = new r(t.s, 16), void 0 === t.recoveryParam ? this.recoveryParam = null : this.recoveryParam = t.recoveryParam) } function s() { this.place = 0 } function u(t, e) { var n = t[e.place++]; if (!(128 & n)) return n; for (var r = 15 & n, i = 0, a = 0, o = e.place; a < r; a++, o++) i <<= 8, i |= t[o]; return e.place = o, i } function c(t) { for (var e = 0, n = t.length - 1; !t[e] && !(128 & t[e + 1]) && e < n;) e++; return 0 === e ? t : t.slice(e) } function f(t, e) { if (e < 128) t.push(e); else { var n = 1 + (Math.log(e) / Math.LN2 >>> 3); for (t.push(128 | n); --n;) t.push(e >>> (n << 3) & 255); t.push(e) } } t.exports = o, o.prototype._importDER = function(t, e) { t = i.toArray(t, e); var n = new s; if (48 !== t[n.place++]) return !1; if (u(t, n) + n.place !== t.length) return !1; if (2 !== t[n.place++]) return !1; var a = u(t, n), o = t.slice(n.place, a + n.place); if (n.place += a, 2 !== t[n.place++]) return !1; var c = u(t, n); if (t.length !== c + n.place) return !1; var f = t.slice(n.place, c + n.place); return 0 === o[0] && 128 & o[1] && (o = o.slice(1)), 0 === f[0] && 128 & f[1] && (f = f.slice(1)), this.r = new r(o), this.s = new r(f), this.recoveryParam = null, !0 }, o.prototype.toDER = function(t) { var e = this.r.toArray(), n = this.s.toArray(); for (128 & e[0] && (e = [0].concat(e)), 128 & n[0] && (n = [0].concat(n)), e = c(e), n = c(n); !(n[0] || 128 & n[1]);) n = n.slice(1); var r = [2]; f(r, e.length), (r = r.concat(e)).push(2), f(r, n.length); var a = r.concat(n), o = [48]; return f(o, a.length), o = o.concat(a), i.encode(o, t) } }, function(t, e, n) { "use strict"; var r = n(127), i = n(126), a = n(17), o = a.assert, s = a.parseBytes, u = n(479), c = n(480); function f(t) { if (o("ed25519" === t, "only tested with ed25519 so far"), !(this instanceof f)) return new f(t); t = i[t].curve; this.curve = t, this.g = t.g, this.g.precompute(t.n.bitLength() + 1), this.pointClass = t.point().constructor, this.encodingLength = Math.ceil(t.n.bitLength() / 8), this.hash = r.sha512 } t.exports = f, f.prototype.sign = function(t, e) { t = s(t); var n = this.keyFromSecret(e), r = this.hashInt(n.messagePrefix(), t), i = this.g.mul(r), a = this.encodePoint(i), o = this.hashInt(a, n.pubBytes(), t).mul(n.priv()), u = r.add(o).umod(this.curve.n); return this.makeSignature({ R: i, S: u, Rencoded: a }) }, f.prototype.verify = function(t, e, n) { t = s(t), e = this.makeSignature(e); var r = this.keyFromPublic(n), i = this.hashInt(e.Rencoded(), r.pubBytes(), t), a = this.g.mul(e.S()); return e.R().add(r.pub().mul(i)).eq(a) }, f.prototype.hashInt = function() { for (var t = this.hash(), e = 0; e < arguments.length; e++) t.update(arguments[e]); return a.intFromLE(t.digest()).umod(this.curve.n) }, f.prototype.keyFromPublic = function(t) { return u.fromPublic(this, t) }, f.prototype.keyFromSecret = function(t) { return u.fromSecret(this, t) }, f.prototype.makeSignature = function(t) { return t instanceof c ? t : new c(this, t) }, f.prototype.encodePoint = function(t) { var e = t.getY().toArray("le", this.encodingLength); return e[this.encodingLength - 1] |= t.getX().isOdd() ? 128 : 0, e }, f.prototype.decodePoint = function(t) { var e = (t = a.parseBytes(t)).length - 1, n = t.slice(0, e).concat(-129 & t[e]), r = 0 != (128 & t[e]), i = a.intFromLE(n); return this.curve.pointFromY(i, r) }, f.prototype.encodeInt = function(t) { return t.toArray("le", this.encodingLength) }, f.prototype.decodeInt = function(t) { return a.intFromLE(t) }, f.prototype.isPoint = function(t) { return t instanceof this.pointClass } }, function(t, e, n) { "use strict"; var r = n(17), i = r.assert, a = r.parseBytes, o = r.cachedProperty; function s(t, e) { this.eddsa = t, this._secret = a(e.secret), t.isPoint(e.pub) ? this._pub = e.pub : this._pubBytes = a(e.pub) } s.fromPublic = function(t, e) { return e instanceof s ? e : new s(t, { pub: e }) }, s.fromSecret = function(t, e) { return e instanceof s ? e : new s(t, { secret: e }) }, s.prototype.secret = function() { return this._secret }, o(s, "pubBytes", (function() { return this.eddsa.encodePoint(this.pub()) })), o(s, "pub", (function() { return this._pubBytes ? this.eddsa.decodePoint(this._pubBytes) : this.eddsa.g.mul(this.priv()) })), o(s, "privBytes", (function() { var t = this.eddsa, e = this.hash(), n = t.encodingLength - 1, r = e.slice(0, t.encodingLength); return r[0] &= 248, r[n] &= 127, r[n] |= 64, r })), o(s, "priv", (function() { return this.eddsa.decodeInt(this.privBytes()) })), o(s, "hash", (function() { return this.eddsa.hash().update(this.secret()).digest() })), o(s, "messagePrefix", (function() { return this.hash().slice(this.eddsa.encodingLength) })), s.prototype.sign = function(t) { return i(this._secret, "KeyPair can only verify"), this.eddsa.sign(t, this) }, s.prototype.verify = function(t, e) { return this.eddsa.verify(t, e, this) }, s.prototype.getSecret = function(t) { return i(this._secret, "KeyPair is public only"), r.encode(this.secret(), t) }, s.prototype.getPublic = function(t) { return r.encode(this.pubBytes(), t) }, t.exports = s }, function(t, e, n) { "use strict"; var r = n(5), i = n(17), a = i.assert, o = i.cachedProperty, s = i.parseBytes; function u(t, e) { this.eddsa = t, "object" != typeof e && (e = s(e)), Array.isArray(e) && (e = { R: e.slice(0, t.encodingLength), S: e.slice(t.encodingLength) }), a(e.R && e.S, "Signature without R or S"), t.isPoint(e.R) && (this._R = e.R), e.S instanceof r && (this._S = e.S), this._Rencoded = Array.isArray(e.R) ? e.R : e.Rencoded, this._Sencoded = Array.isArray(e.S) ? e.S : e.Sencoded } o(u, "S", (function() { return this.eddsa.decodeInt(this.Sencoded()) })), o(u, "R", (function() { return this.eddsa.decodePoint(this.Rencoded()) })), o(u, "Rencoded", (function() { return this.eddsa.encodePoint(this.R()) })), o(u, "Sencoded", (function() { return this.eddsa.encodeInt(this.S()) })), u.prototype.toBytes = function() { return this.Rencoded().concat(this.Sencoded()) }, u.prototype.toHex = function() { return i.encode(this.toBytes(), "hex").toUpperCase() }, t.exports = u }, function(t, e, n) { "use strict"; var r = n(57); e.certificate = n(491); var i = r.define("RSAPrivateKey", (function() { this.seq().obj(this.key("version").int(), this.key("modulus").int(), this.key("publicExponent").int(), this.key("privateExponent").int(), this.key("prime1").int(), this.key("prime2").int(), this.key("exponent1").int(), this.key("exponent2").int(), this.key("coefficient").int()) })); e.RSAPrivateKey = i; var a = r.define("RSAPublicKey", (function() { this.seq().obj(this.key("modulus").int(), this.key("publicExponent").int()) })); e.RSAPublicKey = a; var o = r.define("SubjectPublicKeyInfo", (function() { this.seq().obj(this.key("algorithm").use(s), this.key("subjectPublicKey").bitstr()) })); e.PublicKey = o; var s = r.define("AlgorithmIdentifier", (function() { this.seq().obj(this.key("algorithm").objid(), this.key("none").null_().optional(), this.key("curve").objid().optional(), this.key("params").seq().obj(this.key("p").int(), this.key("q").int(), this.key("g").int()).optional()) })), u = r.define("PrivateKeyInfo", (function() { this.seq().obj(this.key("version").int(), this.key("algorithm").use(s), this.key("subjectPrivateKey").octstr()) })); e.PrivateKey = u; var c = r.define("EncryptedPrivateKeyInfo", (function() { this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(), this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(), this.key("kdeparams").seq().obj(this.key("salt").octstr(), this.key("iters").int())), this.key("cipher").seq().obj(this.key("algo").objid(), this.key("iv").octstr()))), this.key("subjectPrivateKey").octstr()) })); e.EncryptedPrivateKey = c; var f = r.define("DSAPrivateKey", (function() { this.seq().obj(this.key("version").int(), this.key("p").int(), this.key("q").int(), this.key("g").int(), this.key("pub_key").int(), this.key("priv_key").int()) })); e.DSAPrivateKey = f, e.DSAparam = r.define("DSAparam", (function() { this.int() })); var l = r.define("ECPrivateKey", (function() { this.seq().obj(this.key("version").int(), this.key("privateKey").octstr(), this.key("parameters").optional().explicit(0).use(h), this.key("publicKey").optional().explicit(1).bitstr()) })); e.ECPrivateKey = l; var h = r.define("ECParameters", (function() { this.choice({ namedCurve: this.objid() }) })); e.signature = r.define("signature", (function() { this.seq().obj(this.key("r").int(), this.key("s").int()) })) }, function(t, e, n) { var r = n(57), i = n(2); function a(t, e) { this.name = t, this.body = e, this.decoders = {}, this.encoders = {} } e.define = function(t, e) { return new a(t, e) }, a.prototype._createNamed = function(t) { var e; try { e = n(483).runInThisContext("(function " + this.name + "(entity) {\n this._initNamed(entity);\n})") } catch (t) { e = function(t) { this._initNamed(t) } } return i(e, t), e.prototype._initNamed = function(e) { t.call(this, e) }, new e(this) }, a.prototype._getDecoder = function(t) { return t = t || "der", this.decoders.hasOwnProperty(t) || (this.decoders[t] = this._createNamed(r.decoders[t])), this.decoders[t] }, a.prototype.decode = function(t, e, n) { return this._getDecoder(e).decode(t, n) }, a.prototype._getEncoder = function(t) { return t = t || "der", this.encoders.hasOwnProperty(t) || (this.encoders[t] = this._createNamed(r.encoders[t])), this.encoders[t] }, a.prototype.encode = function(t, e, n) { return this._getEncoder(e).encode(t, n) } }, function(module, exports) { var indexOf = function(t, e) { if (t.indexOf) return t.indexOf(e); for (var n = 0; n < t.length; n++) if (t[n] === e) return n; return -1 }, Object_keys = function(t) { if (Object.keys) return Object.keys(t); var e = []; for (var n in t) e.push(n); return e }, forEach = function(t, e) { if (t.forEach) return t.forEach(e); for (var n = 0; n < t.length; n++) e(t[n], n, t) }, defineProp = function() { try { return Object.defineProperty({}, "_", {}), function(t, e, n) { Object.defineProperty(t, e, { writable: !0, enumerable: !1, configurable: !0, value: n }) } } catch (t) { return function(t, e, n) { t[e] = n } } }(), globals = ["Array", "Boolean", "Date", "Error", "EvalError", "Function", "Infinity", "JSON", "Math", "NaN", "Number", "Object", "RangeError", "ReferenceError", "RegExp", "String", "SyntaxError", "TypeError", "URIError", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "undefined", "unescape"]; function Context() {} Context.prototype = {}; var Script = exports.Script = function(t) { if (!(this instanceof Script)) return new Script(t); this.code = t }; Script.prototype.runInContext = function(t) { if (!(t instanceof Context)) throw new TypeError("needs a 'context' argument."); var e = document.createElement("iframe"); e.style || (e.style = {}), e.style.display = "none", document.body.appendChild(e); var n = e.contentWindow, r = n.eval, i = n.execScript; !r && i && (i.call(n, "null"), r = n.eval), forEach(Object_keys(t), (function(e) { n[e] = t[e] })), forEach(globals, (function(e) { t[e] && (n[e] = t[e]) })); var a = Object_keys(n), o = r.call(n, this.code); return forEach(Object_keys(n), (function(e) { (e in t || -1 === indexOf(a, e)) && (t[e] = n[e]) })), forEach(globals, (function(e) { e in t || defineProp(t, e, n[e]) })), document.body.removeChild(e), o }, Script.prototype.runInThisContext = function() { return eval(this.code) }, Script.prototype.runInNewContext = function(t) { var e = Script.createContext(t), n = this.runInContext(e); return t && forEach(Object_keys(e), (function(n) { t[n] = e[n] })), n }, forEach(Object_keys(Script.prototype), (function(t) { exports[t] = Script[t] = function(e) { var n = Script(e); return n[t].apply(n, [].slice.call(arguments, 1)) } })), exports.isContext = function(t) { return t instanceof Context }, exports.createScript = function(t) { return exports.Script(t) }, exports.createContext = Script.createContext = function(t) { var e = new Context; return "object" == typeof t && forEach(Object_keys(t), (function(n) { e[n] = t[n] })), e } }, function(t, e, n) { var r = n(2); function i(t) { this._reporterState = { obj: null, path: [], options: t || {}, errors: [] } } function a(t, e) { this.path = t, this.rethrow(e) } e.Reporter = i, i.prototype.isError = function(t) { return t instanceof a }, i.prototype.save = function() { var t = this._reporterState; return { obj: t.obj, pathLen: t.path.length } }, i.prototype.restore = function(t) { var e = this._reporterState; e.obj = t.obj, e.path = e.path.slice(0, t.pathLen) }, i.prototype.enterKey = function(t) { return this._reporterState.path.push(t) }, i.prototype.exitKey = function(t) { var e = this._reporterState; e.path = e.path.slice(0, t - 1) }, i.prototype.leaveKey = function(t, e, n) { var r = this._reporterState; this.exitKey(t), null !== r.obj && (r.obj[e] = n) }, i.prototype.path = function() { return this._reporterState.path.join("/") }, i.prototype.enterObject = function() { var t = this._reporterState, e = t.obj; return t.obj = {}, e }, i.prototype.leaveObject = function(t) { var e = this._reporterState, n = e.obj; return e.obj = t, n }, i.prototype.error = function(t) { var e, n = this._reporterState, r = t instanceof a; if (e = r ? t : new a(n.path.map((function(t) { return "[" + JSON.stringify(t) + "]" })).join(""), t.message || t, t.stack), !n.options.partial) throw e; return r || n.errors.push(e), e }, i.prototype.wrapResult = function(t) { var e = this._reporterState; return e.options.partial ? { result: this.isError(t) ? null : t, errors: e.errors } : t }, r(a, Error), a.prototype.rethrow = function(t) { if (this.message = t + " at: " + (this.path || "(shallow)"), Error.captureStackTrace && Error.captureStackTrace(this, a), !this.stack) try { throw new Error(this.message) } catch (t) { this.stack = t.stack } return this } }, function(t, e, n) { var r = n(58).Reporter, i = n(58).EncoderBuffer, a = n(58).DecoderBuffer, o = n(16), s = ["seq", "seqof", "set", "setof", "objid", "bool", "gentime", "utctime", "null_", "enum", "int", "objDesc", "bitstr", "bmpstr", "charstr", "genstr", "graphstr", "ia5str", "iso646str", "numstr", "octstr", "printstr", "t61str", "unistr", "utf8str", "videostr"], u = ["key", "obj", "use", "optional", "explicit", "implicit", "def", "choice", "any", "contains"].concat(s); function c(t, e) { var n = {}; this._baseState = n, n.enc = t, n.parent = e || null, n.children = null, n.tag = null, n.args = null, n.reverseArgs = null, n.choice = null, n.optional = !1, n.any = !1, n.obj = !1, n.use = null, n.useDecoder = null, n.key = null, n.default = null, n.explicit = null, n.implicit = null, n.contains = null, n.parent || (n.children = [], this._wrap()) } t.exports = c; var f = ["enc", "parent", "children", "tag", "args", "reverseArgs", "choice", "optional", "any", "obj", "use", "alteredUse", "key", "default", "explicit", "implicit", "contains"]; c.prototype.clone = function() { var t = this._baseState, e = {}; f.forEach((function(n) { e[n] = t[n] })); var n = new this.constructor(e.parent); return n._baseState = e, n }, c.prototype._wrap = function() { var t = this._baseState; u.forEach((function(e) { this[e] = function() { var n = new this.constructor(this); return t.children.push(n), n[e].apply(n, arguments) } }), this) }, c.prototype._init = function(t) { var e = this._baseState; o(null === e.parent), t.call(this), e.children = e.children.filter((function(t) { return t._baseState.parent === this }), this), o.equal(e.children.length, 1, "Root node can have only one child") }, c.prototype._useArgs = function(t) { var e = this._baseState, n = t.filter((function(t) { return t instanceof this.constructor }), this); t = t.filter((function(t) { return !(t instanceof this.constructor) }), this), 0 !== n.length && (o(null === e.children), e.children = n, n.forEach((function(t) { t._baseState.parent = this }), this)), 0 !== t.length && (o(null === e.args), e.args = t, e.reverseArgs = t.map((function(t) { if ("object" != typeof t || t.constructor !== Object) return t; var e = {}; return Object.keys(t).forEach((function(n) { n == (0 | n) && (n |= 0); var r = t[n]; e[r] = n })), e }))) }, ["_peekTag", "_decodeTag", "_use", "_decodeStr", "_decodeObjid", "_decodeTime", "_decodeNull", "_decodeInt", "_decodeBool", "_decodeList", "_encodeComposite", "_encodeStr", "_encodeObjid", "_encodeTime", "_encodeNull", "_encodeInt", "_encodeBool"].forEach((function(t) { c.prototype[t] = function() { var e = this._baseState; throw new Error(t + " not implemented for encoding: " + e.enc) } })), s.forEach((function(t) { c.prototype[t] = function() { var e = this._baseState, n = Array.prototype.slice.call(arguments); return o(null === e.tag), e.tag = t, this._useArgs(n), this } })), c.prototype.use = function(t) { o(t); var e = this._baseState; return o(null === e.use), e.use = t, this }, c.prototype.optional = function() { return this._baseState.optional = !0, this }, c.prototype.def = function(t) { var e = this._baseState; return o(null === e.default), e.default = t, e.optional = !0, this }, c.prototype.explicit = function(t) { var e = this._baseState; return o(null === e.explicit && null === e.implicit), e.explicit = t, this }, c.prototype.implicit = function(t) { var e = this._baseState; return o(null === e.explicit && null === e.implicit), e.implicit = t, this }, c.prototype.obj = function() { var t = this._baseState, e = Array.prototype.slice.call(arguments); return t.obj = !0, 0 !== e.length && this._useArgs(e), this }, c.prototype.key = function(t) { var e = this._baseState; return o(null === e.key), e.key = t, this }, c.prototype.any = function() { return this._baseState.any = !0, this }, c.prototype.choice = function(t) { var e = this._baseState; return o(null === e.choice), e.choice = t, this._useArgs(Object.keys(t).map((function(e) { return t[e] }))), this }, c.prototype.contains = function(t) { var e = this._baseState; return o(null === e.use), e.contains = t, this }, c.prototype._decode = function(t, e) { var n = this._baseState; if (null === n.parent) return t.wrapResult(n.children[0]._decode(t, e)); var r, i = n.default, o = !0, s = null; if (null !== n.key && (s = t.enterKey(n.key)), n.optional) { var u = null; if (null !== n.explicit ? u = n.explicit : null !== n.implicit ? u = n.implicit : null !== n.tag && (u = n.tag), null !== u || n.any) { if (o = this._peekTag(t, u, n.any), t.isError(o)) return o } else { var c = t.save(); try { null === n.choice ? this._decodeGeneric(n.tag, t, e) : this._decodeChoice(t, e), o = !0 } catch (t) { o = !1 } t.restore(c) } } if (n.obj && o && (r = t.enterObject()), o) { if (null !== n.explicit) { var f = this._decodeTag(t, n.explicit); if (t.isError(f)) return f; t = f } var l = t.offset; if (null === n.use && null === n.choice) { if (n.any) c = t.save(); var h = this._decodeTag(t, null !== n.implicit ? n.implicit : n.tag, n.any); if (t.isError(h)) return h; n.any ? i = t.raw(c) : t = h } if (e && e.track && null !== n.tag && e.track(t.path(), l, t.length, "tagged"), e && e.track && null !== n.tag && e.track(t.path(), t.offset, t.length, "content"), i = n.any ? i : null === n.choice ? this._decodeGeneric(n.tag, t, e) : this._decodeChoice(t, e), t.isError(i)) return i; if (n.any || null !== n.choice || null === n.children || n.children.forEach((function(n) { n._decode(t, e) })), n.contains && ("octstr" === n.tag || "bitstr" === n.tag)) { var d = new a(i); i = this._getUse(n.contains, t._reporterState.obj)._decode(d, e) } } return n.obj && o && (i = t.leaveObject(r)), null === n.key || null === i && !0 !== o ? null !== s && t.exitKey(s) : t.leaveKey(s, n.key, i), i }, c.prototype._decodeGeneric = function(t, e, n) { var r = this._baseState; return "seq" === t || "set" === t ? null : "seqof" === t || "setof" === t ? this._decodeList(e, t, r.args[0], n) : /str$/.test(t) ? this._decodeStr(e, t, n) : "objid" === t && r.args ? this._decodeObjid(e, r.args[0], r.args[1], n) : "objid" === t ? this._decodeObjid(e, null, null, n) : "gentime" === t || "utctime" === t ? this._decodeTime(e, t, n) : "null_" === t ? this._decodeNull(e, n) : "bool" === t ? this._decodeBool(e, n) : "objDesc" === t ? this._decodeStr(e, t, n) : "int" === t || "enum" === t ? this._decodeInt(e, r.args && r.args[0], n) : null !== r.use ? this._getUse(r.use, e._reporterState.obj)._decode(e, n) : e.error("unknown tag: " + t) }, c.prototype._getUse = function(t, e) { var n = this._baseState; return n.useDecoder = this._use(t, e), o(null === n.useDecoder._baseState.parent), n.useDecoder = n.useDecoder._baseState.children[0], n.implicit !== n.useDecoder._baseState.implicit && (n.useDecoder = n.useDecoder.clone(), n.useDecoder._baseState.implicit = n.implicit), n.useDecoder }, c.prototype._decodeChoice = function(t, e) { var n = this._baseState, r = null, i = !1; return Object.keys(n.choice).some((function(a) { var o = t.save(), s = n.choice[a]; try { var u = s._decode(t, e); if (t.isError(u)) return !1; r = { type: a, value: u }, i = !0 } catch (e) { return t.restore(o), !1 } return !0 }), this), i ? r : t.error("Choice not matched") }, c.prototype._createEncoderBuffer = function(t) { return new i(t, this.reporter) }, c.prototype._encode = function(t, e, n) { var r = this._baseState; if (null === r.default || r.default !== t) { var i = this._encodeValue(t, e, n); if (void 0 !== i && !this._skipDefault(i, e, n)) return i } }, c.prototype._encodeValue = function(t, e, n) { var i = this._baseState; if (null === i.parent) return i.children[0]._encode(t, e || new r); var a = null; if (this.reporter = e, i.optional && void 0 === t) { if (null === i.default) return; t = i.default } var o = null, s = !1; if (i.any) a = this._createEncoderBuffer(t); else if (i.choice) a = this._encodeChoice(t, e); else if (i.contains) o = this._getUse(i.contains, n)._encode(t, e), s = !0; else if (i.children) o = i.children.map((function(n) { if ("null_" === n._baseState.tag) return n._encode(null, e, t); if (null === n._baseState.key) return e.error("Child should have a key"); var r = e.enterKey(n._baseState.key); if ("object" != typeof t) return e.error("Child expected, but input is not object"); var i = n._encode(t[n._baseState.key], e, t); return e.leaveKey(r), i }), this).filter((function(t) { return t })), o = this._createEncoderBuffer(o); else if ("seqof" === i.tag || "setof" === i.tag) { if (!i.args || 1 !== i.args.length) return e.error("Too many args for : " + i.tag); if (!Array.isArray(t)) return e.error("seqof/setof, but data is not Array"); var u = this.clone(); u._baseState.implicit = null, o = this._createEncoderBuffer(t.map((function(n) { var r = this._baseState; return this._getUse(r.args[0], t)._encode(n, e) }), u)) } else null !== i.use ? a = this._getUse(i.use, n)._encode(t, e) : (o = this._encodePrimitive(i.tag, t), s = !0); if (!i.any && null === i.choice) { var c = null !== i.implicit ? i.implicit : i.tag, f = null === i.implicit ? "universal" : "context"; null === c ? null === i.use && e.error("Tag could be omitted only for .use()") : null === i.use && (a = this._encodeComposite(c, s, f, o)) } return null !== i.explicit && (a = this._encodeComposite(i.explicit, !1, "context", a)), a }, c.prototype._encodeChoice = function(t, e) { var n = this._baseState, r = n.choice[t.type]; return r || o(!1, t.type + " not found in " + JSON.stringify(Object.keys(n.choice))), r._encode(t.value, e) }, c.prototype._encodePrimitive = function(t, e) { var n = this._baseState; if (/str$/.test(t)) return this._encodeStr(e, t); if ("objid" === t && n.args) return this._encodeObjid(e, n.reverseArgs[0], n.args[1]); if ("objid" === t) return this._encodeObjid(e, null, null); if ("gentime" === t || "utctime" === t) return this._encodeTime(e, t); if ("null_" === t) return this._encodeNull(); if ("int" === t || "enum" === t) return this._encodeInt(e, n.args && n.reverseArgs[0]); if ("bool" === t) return this._encodeBool(e); if ("objDesc" === t) return this._encodeStr(e, t); throw new Error("Unsupported tag: " + t) }, c.prototype._isNumstr = function(t) { return /^[0-9 ]*$/.test(t) }, c.prototype._isPrintstr = function(t) { return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(t) } }, function(t, e, n) { var r = n(221); e.tagClass = { 0: "universal", 1: "application", 2: "context", 3: "private" }, e.tagClassByName = r._reverse(e.tagClass), e.tag = { 0: "end", 1: "bool", 2: "int", 3: "bitstr", 4: "octstr", 5: "null_", 6: "objid", 7: "objDesc", 8: "external", 9: "real", 10: "enum", 11: "embed", 12: "utf8str", 13: "relativeOid", 16: "seq", 17: "set", 18: "numstr", 19: "printstr", 20: "t61str", 21: "videostr", 22: "ia5str", 23: "utctime", 24: "gentime", 25: "graphstr", 26: "iso646str", 27: "genstr", 28: "unistr", 29: "charstr", 30: "bmpstr" }, e.tagByName = r._reverse(e.tag) }, function(t, e, n) { var r = e; r.der = n(222), r.pem = n(488) }, function(t, e, n) { var r = n(2), i = n(8).Buffer, a = n(222); function o(t) { a.call(this, t), this.enc = "pem" } r(o, a), t.exports = o, o.prototype.decode = function(t, e) { for (var n = t.toString().split(/[\r\n]+/g), r = e.label.toUpperCase(), o = /^-----(BEGIN|END) ([^-]+)-----$/, s = -1, u = -1, c = 0; c < n.length; c++) { var f = n[c].match(o); if (null !== f && f[2] === r) { if (-1 !== s) { if ("END" !== f[1]) break; u = c; break } if ("BEGIN" !== f[1]) break; s = c } } if (-1 === s || -1 === u) throw new Error("PEM section not found for: " + r); var l = n.slice(s + 1, u).join(""); l.replace(/[^a-z0-9\+\/=]+/gi, ""); var h = new i(l, "base64"); return a.prototype.decode.call(this, h, e) } }, function(t, e, n) { var r = e; r.der = n(223), r.pem = n(490) }, function(t, e, n) { var r = n(2), i = n(223); function a(t) { i.call(this, t), this.enc = "pem" } r(a, i), t.exports = a, a.prototype.encode = function(t, e) { for (var n = i.prototype.encode.call(this, t).toString("base64"), r = ["-----BEGIN " + e.label + "-----"], a = 0; a < n.length; a += 64) r.push(n.slice(a, a + 64)); return r.push("-----END " + e.label + "-----"), r.join("\n") } }, function(t, e, n) { "use strict"; var r = n(57), i = r.define("Time", (function() { this.choice({ utcTime: this.utctime(), generalTime: this.gentime() }) })), a = r.define("AttributeTypeValue", (function() { this.seq().obj(this.key("type").objid(), this.key("value").any()) })), o = r.define("AlgorithmIdentifier", (function() { this.seq().obj(this.key("algorithm").objid(), this.key("parameters").optional(), this.key("curve").objid().optional()) })), s = r.define("SubjectPublicKeyInfo", (function() { this.seq().obj(this.key("algorithm").use(o), this.key("subjectPublicKey").bitstr()) })), u = r.define("RelativeDistinguishedName", (function() { this.setof(a) })), c = r.define("RDNSequence", (function() { this.seqof(u) })), f = r.define("Name", (function() { this.choice({ rdnSequence: this.use(c) }) })), l = r.define("Validity", (function() { this.seq().obj(this.key("notBefore").use(i), this.key("notAfter").use(i)) })), h = r.define("Extension", (function() { this.seq().obj(this.key("extnID").objid(), this.key("critical").bool().def(!1), this.key("extnValue").octstr()) })), d = r.define("TBSCertificate", (function() { this.seq().obj(this.key("version").explicit(0).int().optional(), this.key("serialNumber").int(), this.key("signature").use(o), this.key("issuer").use(f), this.key("validity").use(l), this.key("subject").use(f), this.key("subjectPublicKeyInfo").use(s), this.key("issuerUniqueID").implicit(1).bitstr().optional(), this.key("subjectUniqueID").implicit(2).bitstr().optional(), this.key("extensions").explicit(3).seqof(h).optional()) })), p = r.define("X509Certificate", (function() { this.seq().obj(this.key("tbsCertificate").use(d), this.key("signatureAlgorithm").use(o), this.key("signatureValue").bitstr()) })); t.exports = p }, function(t) { t.exports = JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}') }, function(t, e, n) { var r = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m, i = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m, a = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m, o = n(80), s = n(121), u = n(3).Buffer; t.exports = function(t, e) { var n, c = t.toString(), f = c.match(r); if (f) { var l = "aes" + f[1], h = u.from(f[2], "hex"), d = u.from(f[3].replace(/[\r\n]/g, ""), "base64"), p = o(e, h.slice(0, 8), parseInt(f[1], 10)).key, g = [], y = s.createDecipheriv(l, p, h); g.push(y.update(d)), g.push(y.final()), n = u.concat(g) } else { var b = c.match(a); n = new u(b[2].replace(/[\r\n]/g, ""), "base64") } return { tag: c.match(i)[1], data: n } } }, function(t, e, n) { (function(e) { var r = n(5), i = n(125).ec, a = n(82), o = n(224); function s(t, e) { if (t.cmpn(0) <= 0) throw new Error("invalid sig"); if (t.cmp(e) >= e) throw new Error("invalid sig") } t.exports = function(t, n, u, c, f) { var l = a(u); if ("ec" === l.type) { if ("ecdsa" !== c && "ecdsa/rsa" !== c) throw new Error("wrong public key type"); return function(t, e, n) { var r = o[n.data.algorithm.curve.join(".")]; if (!r) throw new Error("unknown curve " + n.data.algorithm.curve.join(".")); var a = new i(r), s = n.data.subjectPrivateKey.data; return a.verify(e, t, s) }(t, n, l) } if ("dsa" === l.type) { if ("dsa" !== c) throw new Error("wrong public key type"); return function(t, e, n) { var i = n.data.p, o = n.data.q, u = n.data.g, c = n.data.pub_key, f = a.signature.decode(t, "der"), l = f.s, h = f.r; s(l, o), s(h, o); var d = r.mont(i), p = l.invm(o); return 0 === u.toRed(d).redPow(new r(e).mul(p).mod(o)).fromRed().mul(c.toRed(d).redPow(h.mul(p).mod(o)).fromRed()).mod(i).mod(o).cmp(h) }(t, n, l) } if ("rsa" !== c && "ecdsa/rsa" !== c) throw new Error("wrong public key type"); n = e.concat([f, n]); for (var h = l.modulus.byteLength(), d = [1], p = 0; n.length + d.length + 2 < h;) d.push(255), p++; d.push(0); for (var g = -1; ++g < n.length;) d.push(n[g]); d = new e(d); var y = r.mont(l.modulus); t = (t = new r(t).toRed(y)).redPow(new r(l.publicExponent)), t = new e(t.fromRed().toArray()); var b = p < 8 ? 1 : 0; for (h = Math.min(t.length, d.length), t.length !== d.length && (b = 1), g = -1; ++g < h;) b |= t[g] ^ d[g]; return 0 === b } }).call(this, n(8).Buffer) }, function(t, e, n) { (function(e) { var r = n(125), i = n(5); t.exports = function(t) { return new o(t) }; var a = { secp256k1: { name: "secp256k1", byteLength: 32 }, secp224r1: { name: "p224", byteLength: 28 }, prime256v1: { name: "p256", byteLength: 32 }, prime192v1: { name: "p192", byteLength: 24 }, ed25519: { name: "ed25519", byteLength: 32 }, secp384r1: { name: "p384", byteLength: 48 }, secp521r1: { name: "p521", byteLength: 66 } }; function o(t) { this.curveType = a[t], this.curveType || (this.curveType = { name: t }), this.curve = new r.ec(this.curveType.name), this.keys = void 0 } function s(t, n, r) { Array.isArray(t) || (t = t.toArray()); var i = new e(t); if (r && i.length < r) { var a = new e(r - i.length); a.fill(0), i = e.concat([a, i]) } return n ? i.toString(n) : i } a.p224 = a.secp224r1, a.p256 = a.secp256r1 = a.prime256v1, a.p192 = a.secp192r1 = a.prime192v1, a.p384 = a.secp384r1, a.p521 = a.secp521r1, o.prototype.generateKeys = function(t, e) { return this.keys = this.curve.genKeyPair(), this.getPublicKey(t, e) }, o.prototype.computeSecret = function(t, n, r) { return n = n || "utf8", e.isBuffer(t) || (t = new e(t, n)), s(this.curve.keyFromPublic(t).getPublic().mul(this.keys.getPrivate()).getX(), r, this.curveType.byteLength) }, o.prototype.getPublicKey = function(t, e) { var n = this.keys.getPublic("compressed" === e, !0); return "hybrid" === e && (n[n.length - 1] % 2 ? n[0] = 7 : n[0] = 6), s(n, t) }, o.prototype.getPrivateKey = function(t) { return s(this.keys.getPrivate(), t) }, o.prototype.setPublicKey = function(t, n) { return n = n || "utf8", e.isBuffer(t) || (t = new e(t, n)), this.keys._importPublic(t), this }, o.prototype.setPrivateKey = function(t, n) { n = n || "utf8", e.isBuffer(t) || (t = new e(t, n)); var r = new i(t); return r = r.toString(16), this.keys = this.curve.genKeyPair(), this.keys._importPrivate(r), this } }).call(this, n(8).Buffer) }, function(t, e, n) { e.publicEncrypt = n(497), e.privateDecrypt = n(498), e.privateEncrypt = function(t, n) { return e.publicEncrypt(t, n, !0) }, e.publicDecrypt = function(t, n) { return e.privateDecrypt(t, n, !0) } }, function(t, e, n) { var r = n(82), i = n(44), a = n(53), o = n(225), s = n(226), u = n(5), c = n(227), f = n(124), l = n(3).Buffer; t.exports = function(t, e, n) { var h; h = t.padding ? t.padding : n ? 1 : 4; var d, p = r(t); if (4 === h) d = function(t, e) { var n = t.modulus.byteLength(), r = e.length, c = a("sha1").update(l.alloc(0)).digest(), f = c.length, h = 2 * f; if (r > n - h - 2) throw new Error("message too long"); var d = l.alloc(n - r - h - 2), p = n - f - 1, g = i(f), y = s(l.concat([c, d, l.alloc(1, 1), e], p), o(g, p)), b = s(g, o(y, f)); return new u(l.concat([l.alloc(1), b, y], n)) }(p, e); else if (1 === h) d = function(t, e, n) { var r, a = e.length, o = t.modulus.byteLength(); if (a > o - 11) throw new Error("message too long"); r = n ? l.alloc(o - a - 3, 255) : function(t) { var e, n = l.allocUnsafe(t), r = 0, a = i(2 * t), o = 0; for (; r < t;) o === a.length && (a = i(2 * t), o = 0), (e = a[o++]) && (n[r++] = e); return n }(o - a - 3); return new u(l.concat([l.from([0, n ? 1 : 2]), r, l.alloc(1), e], o)) }(p, e, n); else { if (3 !== h) throw new Error("unknown padding"); if ((d = new u(e)).cmp(p.modulus) >= 0) throw new Error("data too long for modulus") } return n ? f(d, p) : c(d, p) } }, function(t, e, n) { var r = n(82), i = n(225), a = n(226), o = n(5), s = n(124), u = n(53), c = n(227), f = n(3).Buffer; t.exports = function(t, e, n) { var l; l = t.padding ? t.padding : n ? 1 : 4; var h, d = r(t), p = d.modulus.byteLength(); if (e.length > p || new o(e).cmp(d.modulus) >= 0) throw new Error("decryption error"); h = n ? c(new o(e), d) : s(e, d); var g = f.alloc(p - h.length); if (h = f.concat([g, h], p), 4 === l) return function(t, e) { var n = t.modulus.byteLength(), r = u("sha1").update(f.alloc(0)).digest(), o = r.length; if (0 !== e[0]) throw new Error("decryption error"); var s = e.slice(1, o + 1), c = e.slice(o + 1), l = a(s, i(c, o)), h = a(c, i(l, n - o - 1)); if (function(t, e) { t = f.from(t), e = f.from(e); var n = 0, r = t.length; t.length !== e.length && (n++, r = Math.min(t.length, e.length)); var i = -1; for (; ++i < r;) n += t[i] ^ e[i]; return n }(r, h.slice(0, o))) throw new Error("decryption error"); var d = o; for (; 0 === h[d];) d++; if (1 !== h[d++]) throw new Error("decryption error"); return h.slice(d) }(d, h); if (1 === l) return function(t, e, n) { var r = e.slice(0, 2), i = 2, a = 0; for (; 0 !== e[i++];) if (i >= e.length) { a++; break } var o = e.slice(2, i - 1); ("0002" !== r.toString("hex") && !n || "0001" !== r.toString("hex") && n) && a++; o.length < 8 && a++; if (a) throw new Error("decryption error"); return e.slice(i) }(0, h, n); if (3 === l) return h; throw new Error("unknown padding") } }, function(t, e, n) { "use strict"; (function(t, r) { function i() { throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11") } var a = n(3), o = n(44), s = a.Buffer, u = a.kMaxLength, c = t.crypto || t.msCrypto, f = Math.pow(2, 32) - 1; function l(t, e) { if ("number" != typeof t || t != t) throw new TypeError("offset must be a number"); if (t > f || t < 0) throw new TypeError("offset must be a uint32"); if (t > u || t > e) throw new RangeError("offset out of range") } function h(t, e, n) { if ("number" != typeof t || t != t) throw new TypeError("size must be a number"); if (t > f || t < 0) throw new TypeError("size must be a uint32"); if (t + e > n || t > u) throw new RangeError("buffer too small") } function d(t, e, n, i) { if (r.browser) { var a = t.buffer, s = new Uint8Array(a, e, n); return c.getRandomValues(s), i ? void r.nextTick((function() { i(null, t) })) : t } if (!i) return o(n).copy(t, e), t; o(n, (function(n, r) { if (n) return i(n); r.copy(t, e), i(null, t) })) } c && c.getRandomValues || !r.browser ? (e.randomFill = function(e, n, r, i) { if (!(s.isBuffer(e) || e instanceof t.Uint8Array)) throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); if ("function" == typeof n) i = n, n = 0, r = e.length; else if ("function" == typeof r) i = r, r = e.length - n; else if ("function" != typeof i) throw new TypeError('"cb" argument must be a function'); return l(n, e.length), h(r, n, e.length), d(e, n, r, i) }, e.randomFillSync = function(e, n, r) { void 0 === n && (n = 0); if (!(s.isBuffer(e) || e instanceof t.Uint8Array)) throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); l(n, e.length), void 0 === r && (r = e.length - n); return h(r, n, e.length), d(e, n, r) }) : (e.randomFill = i, e.randomFillSync = i) }).call(this, n(12), n(7)) }, function(t, e, n) { var r = { "./dark/index.scss": 501, "./default/index.scss": 503, "./forest/index.scss": 505, "./neutral/index.scss": 507 }; function i(t) { var e = a(t); return n(e) } function a(t) { if (!n.o(r, t)) { var e = new Error("Cannot find module '" + t + "'"); throw e.code = "MODULE_NOT_FOUND", e } return r[t] } i.keys = function() { return Object.keys(r) }, i.resolve = a, t.exports = i, i.id = 500 }, function(t, e, n) { var r = n(502); t.exports = "string" == typeof r ? r : r.toString() }, function(t, e, n) { (t.exports = n(83)(!1)).push([t.i, ".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon,.node path{fill:#BDD5EA;stroke:purple;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:#d3d3d3}.edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8;text-align:center}.cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.cluster text{fill:#F9FFFE}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#81B1DB;fill:#BDD5EA}text.actor{fill:#000;stroke:none}.actor-line{stroke:#d3d3d3}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}#arrowhead{fill:#d3d3d3}.sequenceNumber{fill:#fff}#sequencenumber{fill:#d3d3d3}#crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.messageText{fill:#d3d3d3;stroke:none}.labelBox{stroke:#81B1DB;fill:#BDD5EA}.labelText{fill:#323D47;stroke:none}.loopText{fill:#d3d3d3;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:rgba(255,255,255,0.3)}.section2{fill:#EAE8B9}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#F9FFFE}.sectionTitle1{fill:#F9FFFE}.sectionTitle2{fill:#F9FFFE}.sectionTitle3{fill:#F9FFFE}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:#DB5757;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#323D47}.task0,.task1,.task2,.task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.taskTextOutside0,.taskTextOutside2{fill:#d3d3d3}.taskTextOutside1,.taskTextOutside3{fill:#d3d3d3}.active0,.active1,.active2,.active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.activeText0,.activeText1,.activeText2,.activeText3{fill:#323D47 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#323D47 !important}.crit0,.crit1,.crit2,.crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#323D47 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#323D47 !important}.titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.clickable{cursor:pointer}g.classGroup rect{fill:#BDD5EA;stroke:purple}g.classGroup line{stroke:purple;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.classLabel .label{fill:purple;font-size:10px}.relation{stroke:purple;stroke-width:1;fill:none}.dashed-line{stroke-dasharray:3}#compositionStart{fill:purple;stroke:purple;stroke-width:1}#compositionEnd{fill:purple;stroke:purple;stroke-width:1}#aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}#aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}#dependencyStart{fill:purple;stroke:purple;stroke-width:1}#dependencyEnd{fill:purple;stroke:purple;stroke-width:1}#extensionStart{fill:purple;stroke:purple;stroke-width:1}#extensionEnd{fill:purple;stroke:purple;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:purple;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#BDD5EA;stroke:purple}g.stateGroup line{stroke:purple;stroke-width:1}.transition{stroke:purple;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n", ""]) }, function(t, e, n) { var r = n(504); t.exports = "string" == typeof r ? r : r.toString() }, function(t, e, n) { (t.exports = n(83)(!1)).push([t.i, ".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon,.node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:#333}.edgePath .path{stroke:#333;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8;text-align:center}.cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#ccf;fill:#ECECFF}text.actor{fill:#000;stroke:none}.actor-line{stroke:grey}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}.sequenceNumber{fill:#fff}#sequencenumber{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#ccf;fill:#ECECFF}.labelText{fill:#000;stroke:none}.loopText{fill:#000;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#ccf}.note{stroke:#aa3;fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:rgba(102,102,255,0.49)}.section2{fill:#fff400}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:red;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#8a90dd;stroke:#534fbc}.taskTextOutside0,.taskTextOutside2{fill:#000}.taskTextOutside1,.taskTextOutside3{fill:#000}.active0,.active1,.active2,.active3{fill:#bfc7ff;stroke:#534fbc}.activeText0,.activeText1,.activeText2,.activeText3{fill:#000 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#000 !important}.crit0,.crit1,.crit2,.crit3{stroke:#f88;fill:red;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#000 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#000 !important}.titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.clickable{cursor:pointer}g.classGroup rect{fill:#ECECFF;stroke:#9370db}g.classGroup line{stroke:#9370db;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}.classLabel .label{fill:#9370db;font-size:10px}.relation{stroke:#9370db;stroke-width:1;fill:none}.dashed-line{stroke-dasharray:3}#compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#9370db;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#ECECFF;stroke:#9370db}g.stateGroup line{stroke:#9370db;stroke-width:1}.transition{stroke:#9370db;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.state-note{stroke:#aa3;fill:#fff5ad}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n", ""]) }, function(t, e, n) { var r = n(506); t.exports = "string" == typeof r ? r : r.toString() }, function(t, e, n) { (t.exports = n(83)(!1)).push([t.i, ".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon,.node path{fill:#cde498;stroke:#13540c;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:green}.edgePath .path{stroke:green;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8;text-align:center}.cluster rect{fill:#cdffb2;stroke:#6eaa49;stroke-width:1px}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#cdffb2;border:1px solid #6eaa49;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#13540c;fill:#cde498}text.actor{fill:#000;stroke:none}.actor-line{stroke:grey}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}.sequenceNumber{fill:#fff}#sequencenumber{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#326932;fill:#cde498}.labelText{fill:#000;stroke:none}.loopText{fill:#000;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#326932}.note{stroke:#6eaa49;fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:#6eaa49}.section2{fill:#6eaa49}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:red;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#487e3a;stroke:#13540c}.taskTextOutside0,.taskTextOutside2{fill:#000}.taskTextOutside1,.taskTextOutside3{fill:#000}.active0,.active1,.active2,.active3{fill:#cde498;stroke:#13540c}.activeText0,.activeText1,.activeText2,.activeText3{fill:#000 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#000 !important}.crit0,.crit1,.crit2,.crit3{stroke:#f88;fill:red;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#f88;fill:#cde498;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#000 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#000 !important}.titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:#13540c;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.clickable{cursor:pointer}g.classGroup rect{fill:#cde498;stroke:#13540c}g.classGroup line{stroke:#13540c;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#cde498;opacity:0.5}.classLabel .label{fill:#13540c;font-size:10px}.relation{stroke:#13540c;stroke-width:1;fill:none}.dashed-line{stroke-dasharray:3}#compositionStart{fill:#13540c;stroke:#13540c;stroke-width:1}#compositionEnd{fill:#13540c;stroke:#13540c;stroke-width:1}#aggregationStart{fill:#cde498;stroke:#13540c;stroke-width:1}#aggregationEnd{fill:#cde498;stroke:#13540c;stroke-width:1}#dependencyStart{fill:#13540c;stroke:#13540c;stroke-width:1}#dependencyEnd{fill:#13540c;stroke:#13540c;stroke-width:1}#extensionStart{fill:#13540c;stroke:#13540c;stroke-width:1}#extensionEnd{fill:#13540c;stroke:#13540c;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#13540c;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#13540c;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#cde498;stroke:#13540c}g.stateGroup line{stroke:#13540c;stroke-width:1}.transition{stroke:#13540c;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.state-note{stroke:#6eaa49;fill:#fff5ad}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#cde498;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n", ""]) }, function(t, e, n) { var r = n(508); t.exports = "string" == typeof r ? r : r.toString() }, function(t, e, n) { (t.exports = n(83)(!1)).push([t.i, ".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon,.node path{fill:#eee;stroke:#999;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:#333}.edgePath .path{stroke:#666;stroke-width:1.5px}.edgeLabel{background-color:#fff;text-align:center}.cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#999;fill:#eee}text.actor{fill:#333;stroke:none}.actor-line{stroke:#666}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}.sequenceNumber{fill:#fff}#sequencenumber{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#999;fill:#eee}.labelText{fill:#333;stroke:none}.loopText{fill:#333;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.note{stroke:#770;fill:#ffa}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:#80b3e6}.section2{fill:#80b3e6}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#e6e6e6;opacity:0.8;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:#d42;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#26a;stroke:#1a4d80}.taskTextOutside0,.taskTextOutside2{fill:#333}.taskTextOutside1,.taskTextOutside3{fill:#333}.active0,.active1,.active2,.active3{fill:#eee;stroke:#1a4d80}.activeText0,.activeText1,.activeText2,.activeText3{fill:#333 !important}.done0,.done1,.done2,.done3{stroke:#666;fill:#bbb;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#333 !important}.crit0,.crit1,.crit2,.crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#333 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#333 !important}.titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.clickable{cursor:pointer}g.classGroup rect{fill:#eee;stroke:#999}g.classGroup line{stroke:#999;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.classLabel .label{fill:#999;font-size:10px}.relation{stroke:#999;stroke-width:1;fill:none}.dashed-line{stroke-dasharray:3}#compositionStart{fill:#999;stroke:#999;stroke-width:1}#compositionEnd{fill:#999;stroke:#999;stroke-width:1}#aggregationStart{fill:#eee;stroke:#999;stroke-width:1}#aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}#dependencyStart{fill:#999;stroke:#999;stroke-width:1}#dependencyEnd{fill:#999;stroke:#999;stroke-width:1}#extensionStart{fill:#999;stroke:#999;stroke-width:1}#extensionEnd{fill:#999;stroke:#999;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#999;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#eee;stroke:#999}g.stateGroup line{stroke:#999;stroke-width:1}.transition{stroke:#999;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.state-note{stroke:#770;fill:#ffa}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n", ""]) }, function(t, e, n) { "use strict"; n.r(e); var r = n(228), i = n.n(r), a = n(0), o = n(229), s = n.n(o), u = n(88); function c(t) { return (c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) } var f = {}, l = function(t) { ! function(t) { for (var e = Object.keys(t), n = 0; n < e.length; n++) if ("object" === c(t[e[n]]) && null != t[e[n]]) for (var r = Object.keys(t[e[n]]), i = 0; i < r.length; i++) void 0 === f[e[n]] && (f[e[n]] = {}), f[e[n]][r[i]] = t[e[n]][r[i]]; else f[e[n]] = t[e[n]] }(t) }, h = function() { return f }, d = n(22), p = n.n(d), g = 1, y = 2, b = 3, v = 4, m = 5, _ = { debug: function() {}, info: function() {}, warn: function() {}, error: function() {}, fatal: function() {} }, w = function(t) { _.debug = function() {}, _.info = function() {}, _.warn = function() {}, _.error = function() {}, _.fatal = function() {}, t <= m && (_.fatal = console.error ? console.error.bind(console, x("FATAL"), "color: orange") : console.log.bind(console, "[35m", x("FATAL"))), t <= v && (_.error = console.error ? console.error.bind(console, x("ERROR"), "color: orange") : console.log.bind(console, "[31m", x("ERROR"))), t <= b && (_.warn = console.warn ? console.warn.bind(console, x("WARN"), "color: orange") : console.log.bind(console, "[33m", x("WARN"))), t <= y && (_.info = console.info ? console.info.bind(console, x("INFO"), "color: lightblue") : console.log.bind(console, "[34m", x("INFO"))), t <= g && (_.debug = console.debug ? console.debug.bind(console, x("DEBUG"), "color: lightgreen") : console.log.bind(console, "[32m", x("DEBUG"))) }, x = function(t) { var e = p()().format("ss.SSS"); return "%c".concat(e, " : ").concat(t, " : ") }, k = n(84), E = function(t, e) { if (!t) return e; var n = "curve".concat(t.charAt(0).toUpperCase() + t.slice(1)); return a[n] || e }, A = function(t, e) { return t && e ? Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) : 0 }, S = { detectType: function(t) { return t = t.replace(/^\s*%%.*\n/g, "\n"), _.debug("Detecting diagram type based on the text " + t), t.match(/^\s*sequenceDiagram/) ? "sequence" : t.match(/^\s*gantt/) ? "gantt" : t.match(/^\s*classDiagram/) ? "class" : t.match(/^\s*stateDiagram/) ? "state" : t.match(/^\s*gitGraph/) ? "git" : t.match(/^\s*info/) ? "info" : t.match(/^\s*pie/) ? "pie" : "flowchart" }, isSubstringInArray: function(t, e) { for (var n = 0; n < e.length; n++) if (e[n].match(t)) return n; return -1 }, interpolateToCurve: E, calcLabelPosition: function(t) { return function(t) { var e, n = 0; t.forEach((function(t) { n += A(t, e), e = t })); var r, i = n / 2; return e = void 0, t.forEach((function(t) { if (e && !r) { var n = A(t, e); if (n < i) i -= n; else { var a = i / n; a <= 0 && (r = e), a >= 1 && (r = { x: t.x, y: t.y }), a > 0 && a < 1 && (r = { x: (1 - a) * e.x + a * t.x, y: (1 - a) * e.y + a * t.y }) } } e = t })), r }(t) }, calcCardinalityPosition: function(t, e, n) { var r; e[0] !== n && (e = e.reverse()), e.forEach((function(t) { A(t, r), r = t })); var i, a = 25; r = void 0, e.forEach((function(t) { if (r && !i) { var e = A(t, r); if (e < a) a -= e; else { var n = a / e; n <= 0 && (i = r), n >= 1 && (i = { x: t.x, y: t.y }), n > 0 && n < 1 && (i = { x: (1 - n) * r.x + n * t.x, y: (1 - n) * r.y + n * t.y }) } } r = t })); var o = t ? 10 : 5, s = Math.atan2(e[0].y - i.y, e[0].x - i.x), u = { x: 0, y: 0 }; return u.x = Math.sin(s) * o + (e[0].x + i.x) / 2, u.y = -Math.cos(s) * o + (e[0].y + i.y) / 2, u }, sanitize: function(t, e) { var n = t, r = !0; return !e.flowchart || !1 !== e.flowchart.htmlLabels && "false" !== e.flowchart.htmlLabels || (r = !1), "loose" !== e.securityLevel && r && (n = (n = (n = (n = n.replace(/<br\s*\/?>/gi, "#br#")).replace(/</g, "<").replace(/>/g, ">")).replace(/=/g, "=")).replace(/#br#/g, "<br/>")), n }, formatUrl: function(t, e) { var n = t.trim(); if (n) return "loose" !== e.securityLevel ? Object(k.sanitizeUrl)(n) : (/^(https?:)?\/\//i.test(n) || (n = "http://" + n), n) } }, M = n(25), T = n.n(M); function D(t) { return (D = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) } var C, N = h(), I = {}, L = [], B = [], O = [], R = {}, P = {}, F = 0, q = !0, j = [], U = function(t, e, n, r) { var i = t, a = e; i[0].match(/\d/) && (i = "" + i), a[0].match(/\d/) && (a = "" + a), _.info("Got edge...", i, a); var o = { start: i, end: a, type: void 0, text: "" }; void 0 !== (r = n.text) && (o.text = S.sanitize(r.trim(), N), '"' === o.text[0] && '"' === o.text[o.text.length - 1] && (o.text = o.text.substring(1, o.text.length - 1))), void 0 !== n && (o.type = n.type, o.stroke = n.stroke), L.push(o) }, z = function(t, e) { t.split(",").forEach((function(t) { var n = t; t[0].match(/\d/) && (n = "" + n), void 0 !== I[n] && I[n].classes.push(e), void 0 !== R[n] && R[n].classes.push(e) })) }, Y = function(t, e) { t.split(",").forEach((function(t) { void 0 !== e && (P[t] = S.sanitize(e, N)) })) }, V = function(t) { var e = a.select(".mermaidTooltip"); null === (e._groups || e)[0][0] && (e = a.select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0)), a.select(t).select("svg").selectAll("g.node").on("mouseover", (function() { var t = a.select(this); if (null !== t.attr("title")) { var n = this.getBoundingClientRect(); e.transition().duration(200).style("opacity", ".9"), e.html(t.attr("title")).style("left", n.left + (n.right - n.left) / 2 + "px").style("top", n.top - 14 + document.body.scrollTop + "px"), t.classed("hover", !0) } })).on("mouseout", (function() { e.transition().duration(500).style("opacity", 0), a.select(this).classed("hover", !1) })) }; j.push(V); var H = function(t) { for (var e = 0; e < O.length; e++) if (O[e].id === t) return e; return -1 }, G = -1, $ = [], W = { addVertex: function(t, e, n, r, i) { var a, o = t; void 0 !== o && 0 !== o.trim().length && (o[0].match(/\d/) && (o = "" + o), void 0 === I[o] && (I[o] = { id: o, styles: [], classes: [] }), void 0 !== e ? ('"' === (a = S.sanitize(e.trim(), N))[0] && '"' === a[a.length - 1] && (a = a.substring(1, a.length - 1)), I[o].text = a) : void 0 === I[o].text && (I[o].text = t), void 0 !== n && (I[o].type = n), null != r && r.forEach((function(t) { I[o].styles.push(t) })), null != i && i.forEach((function(t) { I[o].classes.push(t) }))) }, addLink: function(t, e, n, r) { var i, a; for (i = 0; i < t.length; i++) for (a = 0; a < e.length; a++) U(t[i], e[a], n, r) }, updateLinkInterpolate: function(t, e) { t.forEach((function(t) { "default" === t ? L.defaultInterpolate = e : L[t].interpolate = e })) }, updateLink: function(t, e) { t.forEach((function(t) { "default" === t ? L.defaultStyle = e : (-1 === S.isSubstringInArray("fill", e) && e.push("fill:none"), L[t].style = e) })) }, addClass: function(t, e) { void 0 === B[t] && (B[t] = { id: t, styles: [] }), null != e && e.forEach((function(e) { B[t].styles.push(e) })) }, setDirection: function(t) { (C = t).match(/.*</) && (C = "RL"), C.match(/.*\^/) && (C = "BT"), C.match(/.*>/) && (C = "LR"), C.match(/.*v/) && (C = "TB") }, setClass: z, getTooltip: function(t) { return P[t] }, setClickEvent: function(t, e, n) { t.split(",").forEach((function(t) { ! function(t, e) { var n = t; t[0].match(/\d/) && (n = "" + n), "loose" === N.securityLevel && void 0 !== e && void 0 !== I[n] && j.push((function() { var t = document.querySelector('[id="'.concat(n, '"]')); null !== t && t.addEventListener("click", (function() { window[e](n) }), !1) })) }(t, e) })), Y(t, n), z(t, "clickable") }, setLink: function(t, e, n) { t.split(",").forEach((function(t) { var n = t; t[0].match(/\d/) && (n = "" + n), void 0 !== I[n] && (I[n].link = S.formatUrl(e, N)) })), Y(t, n), z(t, "clickable") }, bindFunctions: function(t) { j.forEach((function(e) { e(t) })) }, getDirection: function() { return C.trim() }, getVertices: function() { return I }, getEdges: function() { return L }, getClasses: function() { return B }, clear: function() { I = {}, B = {}, L = [], (j = []).push(V), O = [], R = {}, F = 0, P = [], q = !0 }, defaultStyle: function() { return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;" }, addSubGraph: function(t, e, n) { var r = t, i = n; t === n && n.match(/\s/) && (r = void 0); var a, o, s, u = []; a = u.concat.apply(u, e), o = { boolean: {}, number: {}, string: {} }, s = [], u = a.filter((function(t) { var e = D(t); return "" !== t.trim() && (e in o ? !o[e].hasOwnProperty(t) && (o[e][t] = !0) : !(s.indexOf(t) >= 0) && s.push(t)) })); for (var c = 0; c < u.length; c++) u[c][0].match(/\d/) && (u[c] = "" + u[c]); (r = r || "subGraph" + F)[0].match(/\d/) && (r = "" + r), i = i || "", i = S.sanitize(i, N), F += 1; var f = { id: r, nodes: u, title: i.trim(), classes: [] }; return O.push(f), R[r] = f, r }, getDepthFirstPos: function(t) { return $[t] }, indexNodes: function() { G = -1, O.length > 0 && function t(e, n) { var r = O[n].nodes; if (!((G += 1) > 2e3)) { if ($[G] = n, O[n].id === e) return { result: !0, count: 0 }; for (var i = 0, a = 1; i < r.length;) { var o = H(r[i]); if (o >= 0) { var s = t(e, o); if (s.result) return { result: !0, count: a + s.count }; a += s.count } i += 1 } return { result: !1, count: a } } }("none", O.length - 1) }, getSubGraphs: function() { return O }, destructLink: function(t, e) { var n, r = function(t) { switch (t.trim()) { case "--x": return { type: "arrow_cross", stroke: "normal" }; case "--\x3e": return { type: "arrow", stroke: "normal" }; case "<--\x3e": return { type: "double_arrow_point", stroke: "normal" }; case "x--x": return { type: "double_arrow_cross", stroke: "normal" }; case "o--o": return { type: "double_arrow_circle", stroke: "normal" }; case "o.-o": return { type: "double_arrow_circle", stroke: "dotted" }; case "<==>": return { type: "double_arrow_point", stroke: "thick" }; case "o==o": return { type: "double_arrow_circle", stroke: "thick" }; case "x==x": return { type: "double_arrow_cross", stroke: "thick" }; case "x.-x": case "x-.-x": return { type: "double_arrow_cross", stroke: "dotted" }; case "<.->": case "<-.->": return { type: "double_arrow_point", stroke: "dotted" }; case "o-.-o": return { type: "double_arrow_circle", stroke: "dotted" }; case "--o": return { type: "arrow_circle", stroke: "normal" }; case "---": return { type: "arrow_open", stroke: "normal" }; case "-.-x": return { type: "arrow_cross", stroke: "dotted" }; case "-.->": return { type: "arrow", stroke: "dotted" }; case "-.-o": return { type: "arrow_circle", stroke: "dotted" }; case "-.-": return { type: "arrow_open", stroke: "dotted" }; case ".-x": return { type: "arrow_cross", stroke: "dotted" }; case ".->": return { type: "arrow", stroke: "dotted" }; case ".-o": return { type: "arrow_circle", stroke: "dotted" }; case ".-": return { type: "arrow_open", stroke: "dotted" }; case "==x": return { type: "arrow_cross", stroke: "thick" }; case "==>": return { type: "arrow", stroke: "thick" }; case "==o": return { type: "arrow_circle", stroke: "thick" }; case "===": return { type: "arrow_open", stroke: "thick" } } }(t); if (e) { if ((n = function(t) { switch (t.trim()) { case "<--": return { type: "arrow", stroke: "normal" }; case "x--": return { type: "arrow_cross", stroke: "normal" }; case "o--": return { type: "arrow_circle", stroke: "normal" }; case "<-.": return { type: "arrow", stroke: "dotted" }; case "x-.": return { type: "arrow_cross", stroke: "dotted" }; case "o-.": return { type: "arrow_circle", stroke: "dotted" }; case "<==": return { type: "arrow", stroke: "thick" }; case "x==": return { type: "arrow_cross", stroke: "thick" }; case "o==": return { type: "arrow_circle", stroke: "thick" }; case "--": return { type: "arrow_open", stroke: "normal" }; case "==": return { type: "arrow_open", stroke: "thick" }; case "-.": return { type: "arrow_open", stroke: "dotted" } } }(e)).stroke !== r.stroke) return { type: "INVALID", stroke: "INVALID" }; if ("arrow_open" === n.type) n.type = r.type; else { if (n.type !== r.type) return { type: "INVALID", stroke: "INVALID" }; n.type = "double_" + n.type } return "double_arrow" === n.type && (n.type = "double_arrow_point"), n } return r }, lex: { firstGraph: function() { return !!q && (q = !1, !0) } } }, K = n(60), X = n.n(K), Z = n(11), J = n.n(Z), Q = n(128), tt = n.n(Q); function et(t, e, n) { var r = .9 * (e.width + e.height), i = [{ x: r / 2, y: 0 }, { x: r, y: -r / 2 }, { x: r / 2, y: -r }, { x: 0, y: -r / 2 }], a = lt(t, r, r, i); return n.intersect = function(t) { return J.a.intersect.polygon(n, i, t) }, a } function nt(t, e, n) { var r = e.height, i = r / 4, a = e.width + 2 * i, o = [{ x: i, y: 0 }, { x: a - i, y: 0 }, { x: a, y: -r / 2 }, { x: a - i, y: -r }, { x: i, y: -r }, { x: 0, y: -r / 2 }], s = lt(t, a, r, o); return n.intersect = function(t) { return J.a.intersect.polygon(n, o, t) }, s } function rt(t, e, n) { var r = e.width, i = e.height, a = [{ x: -i / 2, y: 0 }, { x: r, y: 0 }, { x: r, y: -i }, { x: -i / 2, y: -i }, { x: 0, y: -i / 2 }], o = lt(t, r, i, a); return n.intersect = function(t) { return J.a.intersect.polygon(n, a, t) }, o } function it(t, e, n) { var r = e.width, i = e.height, a = [{ x: -2 * i / 6, y: 0 }, { x: r - i / 6, y: 0 }, { x: r + 2 * i / 6, y: -i }, { x: i / 6, y: -i }], o = lt(t, r, i, a); return n.intersect = function(t) { return J.a.intersect.polygon(n, a, t) }, o } function at(t, e, n) { var r = e.width, i = e.height, a = [{ x: 2 * i / 6, y: 0 }, { x: r + i / 6, y: 0 }, { x: r - 2 * i / 6, y: -i }, { x: -i / 6, y: -i }], o = lt(t, r, i, a); return n.intersect = function(t) { return J.a.intersect.polygon(n, a, t) }, o } function ot(t, e, n) { var r = e.width, i = e.height, a = [{ x: -2 * i / 6, y: 0 }, { x: r + 2 * i / 6, y: 0 }, { x: r - i / 6, y: -i }, { x: i / 6, y: -i }], o = lt(t, r, i, a); return n.intersect = function(t) { return J.a.intersect.polygon(n, a, t) }, o } function st(t, e, n) { var r = e.width, i = e.height, a = [{ x: i / 6, y: 0 }, { x: r - i / 6, y: 0 }, { x: r + 2 * i / 6, y: -i }, { x: -2 * i / 6, y: -i }], o = lt(t, r, i, a); return n.intersect = function(t) { return J.a.intersect.polygon(n, a, t) }, o } function ut(t, e, n) { var r = e.width, i = e.height, a = [{ x: 0, y: 0 }, { x: r + i / 2, y: 0 }, { x: r, y: -i / 2 }, { x: r + i / 2, y: -i }, { x: 0, y: -i }], o = lt(t, r, i, a); return n.intersect = function(t) { return J.a.intersect.polygon(n, a, t) }, o } function ct(t, e, n) { var r = e.height, i = e.width + r / 4, a = t.insert("rect", ":first-child").attr("rx", r / 2).attr("ry", r / 2).attr("x", -i / 2).attr("y", -r / 2).attr("width", i).attr("height", r); return n.intersect = function(t) { return J.a.intersect.rect(n, t) }, a } function ft(t, e, n) { var r = e.width, i = r / 2, a = i / (2.5 + r / 50), o = e.height + a, s = "M 0," + a + " a " + i + "," + a + " 0,0,0 " + r + " 0 a " + i + "," + a + " 0,0,0 " + -r + " 0 l 0," + o + " a " + i + "," + a + " 0,0,0 " + r + " 0 l 0," + -o, u = t.attr("label-offset-y", a).insert("path", ":first-child").attr("d", s).attr("transform", "translate(" + -r / 2 + "," + -(o / 2 + a) + ")"); return n.intersect = function(t) { var e = J.a.intersect.rect(n, t), r = e.x - n.x; if (0 != i && (Math.abs(r) < n.width / 2 || Math.abs(r) == n.width / 2 && Math.abs(e.y - n.y) > n.height / 2 - a)) { var o = a * a * (1 - r * r / (i * i)); 0 != o && (o = Math.sqrt(o)), o = a - o, t.y - n.y > 0 && (o = -o), e.y += o } return e }, u } function lt(t, e, n, r) { return t.insert("polygon", ":first-child").attr("points", r.map((function(t) { return t.x + "," + t.y })).join(" ")).attr("transform", "translate(" + -e / 2 + "," + n / 2 + ")") } var ht = { addToRender: function(t) { t.shapes().question = et, t.shapes().hexagon = nt, t.shapes().stadium = ct, t.shapes().cylinder = ft, t.shapes().rect_left_inv_arrow = rt, t.shapes().lean_right = it, t.shapes().lean_left = at, t.shapes().trapezoid = ot, t.shapes().inv_trapezoid = st, t.shapes().rect_right_inv_arrow = ut } }, dt = {}, pt = function(t, e, n) { var r = a.select('[id="'.concat(n, '"]')), i = Object.keys(t), o = function(t, e, n) { if (n.label) for (var r = 0; r < e.length; r++) void 0 !== e[r] && e[r].match("^color:|^text-align:") && (t = t + e[r] + ";"); else for (var i = 0; i < e.length; i++) void 0 !== e[i] && (t = t + e[i] + ";"); return t }; i.forEach((function(n) { var i = t[n], a = ""; i.classes.length > 0 && (a = i.classes.join(" ")); var s = ""; s = o(s, i.styles, { label: !1 }); var u = ""; u = o(u, i.styles, { label: !0 }); var c, f = void 0 !== i.text ? i.text : i.id; if (h().flowchart.htmlLabels) { var l = { label: f.replace(/fa[lrsb]?:fa-[\w-]+/g, (function(t) { return "<i class='".concat(t.replace(":", " "), "'></i>") })) }; (c = tt()(r, l).node()).parentNode.removeChild(c) } else { for (var d = document.createElementNS("http://www.w3.org/2000/svg", "text"), p = f.split(/<br\s*\/?>/gi), g = 0; g < p.length; g++) { var y = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); y.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), y.setAttribute("dy", "1em"), y.setAttribute("x", "1"), y.textContent = p[g], d.appendChild(y) } c = d } var b = 0, v = ""; switch (i.type) { case "round": b = 5, v = "rect"; break; case "square": v = "rect"; break; case "diamond": v = "question"; break; case "hexagon": v = "hexagon"; break; case "odd": v = "rect_left_inv_arrow"; break; case "lean_right": v = "lean_right"; break; case "lean_left": v = "lean_left"; break; case "trapezoid": v = "trapezoid"; break; case "inv_trapezoid": v = "inv_trapezoid"; break; case "odd_right": v = "rect_left_inv_arrow"; break; case "circle": v = "circle"; break; case "ellipse": v = "ellipse"; break; case "stadium": v = "stadium"; break; case "cylinder": v = "cylinder"; break; case "group": v = "rect"; break; default: v = "rect" } e.setNode(i.id, { labelType: "svg", labelStyle: u, shape: v, label: c, rx: b, ry: b, class: a, style: s, id: i.id }) })) }, gt = function(t, e) { var n, r = 0; void 0 !== t.defaultStyle && (n = t.defaultStyle.toString().replace(/,/g, ";")), t.forEach((function(i) { r++; var o = {}; "arrow_open" === i.type ? o.arrowhead = "none" : o.arrowhead = "normal"; var s = ""; if (void 0 !== i.style) i.style.forEach((function(t) { s = s + t + ";" })); else switch (i.stroke) { case "normal": s = "fill:none", void 0 !== n && (s = n); break; case "dotted": s = "fill:none;stroke-width:2px;stroke-dasharray:3;"; break; case "thick": s = " stroke-width: 3.5px;fill:none" } o.style = s, void 0 !== i.interpolate ? o.curve = E(i.interpolate, a.curveLinear) : void 0 !== t.defaultInterpolate ? o.curve = E(t.defaultInterpolate, a.curveLinear) : o.curve = E(dt.curve, a.curveLinear), void 0 === i.text ? void 0 !== i.style && (o.arrowheadStyle = "fill: #333") : (o.arrowheadStyle = "fill: #333", o.labelpos = "c", h().flowchart.htmlLabels ? (o.labelType = "html", o.label = '<span class="edgeLabel">' + i.text + "</span>") : (o.labelType = "text", o.label = i.text.replace(/<br\s*\/?>/gi, "\n"), void 0 === i.style && (o.style = o.style || "stroke: #333; stroke-width: 1.5px;fill:none"))), e.setEdge(i.start, i.end, o, r) })) }, yt = function(t) { for (var e = Object.keys(t), n = 0; n < e.length; n++) dt[e[n]] = t[e[n]] }, bt = function(t) { _.info("Extracting classes"), W.clear(); var e = X.a.parser; return e.yy = W, e.parse(t), W.getClasses() }, vt = function(t, e) { _.info("Drawing flowchart"), W.clear(); var n = X.a.parser; n.yy = W; try { n.parse(t) } catch (t) { _.debug("Parsing failed") } var r = W.getDirection(); void 0 === r && (r = "TD"); for (var i, o = h().flowchart, s = o.nodeSpacing || 50, u = o.rankSpacing || 50, c = new T.a.Graph({ multigraph: !0, compound: !0 }).setGraph({ rankdir: r, nodesep: s, ranksep: u, marginx: 8, marginy: 8 }).setDefaultEdgeLabel((function() { return {} })), f = W.getSubGraphs(), l = f.length - 1; l >= 0; l--) i = f[l], W.addVertex(i.id, i.title, "group", void 0, i.classes); var d = W.getVertices(), p = W.getEdges(), g = 0; for (g = f.length - 1; g >= 0; g--) { i = f[g], a.selectAll("cluster").append("text"); for (var y = 0; y < i.nodes.length; y++) c.setParent(i.nodes[y], i.id) } pt(d, c, e), gt(p, c); var b = new(0, J.a.render); ht.addToRender(b), b.arrows().none = function(t, e, n, r) { var i = t.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 0 L 0 0 L 0 0 z"); J.a.util.applyStyle(i, n[r + "Style"]) }, b.arrows().normal = function(t, e) { t.append("marker").attr("id", e).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0") }; var v = a.select('[id="'.concat(e, '"]')), m = a.select("#" + e + " g"); b(m, c), m.selectAll("g.node").attr("title", (function() { return W.getTooltip(this.id) })); var w = v.node().getBBox(), x = w.width + 16, k = w.height + 16; for (_.debug("new ViewBox 0 0 ".concat(x, " ").concat(k), "translate(".concat(8 - c._label.marginx, ", ").concat(8 - c._label.marginy, ")")), o.useMaxWidth ? (v.attr("width", "100%"), v.attr("style", "max-width: ".concat(x, "px;"))) : (v.attr("height", k), v.attr("width", x)), v.attr("viewBox", "0 0 ".concat(x, " ").concat(k)), v.select("g").attr("transform", "translate(".concat(8 - c._label.marginx, ", ").concat(8 - w.y, ")")), W.indexNodes("subGraph" + g), g = 0; g < f.length; g++) if ("undefined" !== (i = f[g]).title) { var E = document.querySelectorAll("#" + e + ' [id="' + i.id + '"] rect'), A = document.querySelectorAll("#" + e + ' [id="' + i.id + '"]'), S = E[0].x.baseVal.value, M = E[0].y.baseVal.value, D = E[0].width.baseVal.value, C = a.select(A[0]).select(".label"); C.attr("transform", "translate(".concat(S + D / 2, ", ").concat(M + 14, ")")), C.attr("id", e + "Text") } if (!o.htmlLabels) for (var N = document.querySelectorAll('[id="' + e + '"] .edgeLabel .label'), I = 0; I < N.length; I++) { var L = N[I], B = L.getBBox(), O = document.createElementNS("http://www.w3.org/2000/svg", "rect"); O.setAttribute("rx", 0), O.setAttribute("ry", 0), O.setAttribute("width", B.width), O.setAttribute("height", B.height), O.setAttribute("style", "fill:#e8e8e8;"), L.insertBefore(O, L.firstChild) } Object.keys(d).forEach((function(t) { var n = d[t]; if (n.link) { var r = a.select("#" + e + ' [id="' + t + '"]'); if (r) { var i = document.createElementNS("http://www.w3.org/2000/svg", "a"); i.setAttributeNS("http://www.w3.org/2000/svg", "class", n.classes.join(" ")), i.setAttributeNS("http://www.w3.org/2000/svg", "href", n.link), i.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"); var o = r.insert((function() { return i }), ":first-child"), s = r.select(".label-container"); s && o.append((function() { return s.node() })); var u = r.select(".label"); u && o.append((function() { return u.node() })) } } })) }, mt = function(t, e) { var n = t.append("rect"); return n.attr("x", e.x), n.attr("y", e.y), n.attr("fill", e.fill), n.attr("stroke", e.stroke), n.attr("width", e.width), n.attr("height", e.height), n.attr("rx", e.rx), n.attr("ry", e.ry), void 0 !== e.class && n.attr("class", e.class), n }, _t = function(t, e) { var n = e.text.replace(/<br\s*\/?>/gi, " "), r = t.append("text"); r.attr("x", e.x), r.attr("y", e.y), r.style("text-anchor", e.anchor), r.attr("fill", e.fill), void 0 !== e.class && r.attr("class", e.class); var i = r.append("tspan"); return i.attr("x", e.x + 2 * e.textMargin), i.attr("fill", e.fill), i.text(n), r }, wt = function(t, e) { var n, r, i, a, o, s = t.append("polygon"); s.attr("points", (n = e.x, r = e.y, n + "," + r + " " + (n + (i = 50)) + "," + r + " " + (n + i) + "," + (r + (a = 20) - (o = 7)) + " " + (n + i - 1.2 * o) + "," + (r + a) + " " + n + "," + (r + a))), s.attr("class", "labelBox"), e.y = e.y + e.labelMargin, e.x = e.x + .5 * e.labelMargin, _t(t, e) }, xt = -1, kt = function() { return { x: 0, y: 0, fill: void 0, "text-anchor": "start", style: "#666", width: 100, height: 100, textMargin: 0, rx: 0, ry: 0 } }, Et = function() { return { x: 0, y: 0, fill: "#EDF2AE", stroke: "#666", width: 100, anchor: "start", height: 100, rx: 0, ry: 0 } }, At = function() { function t(t, e, n, i, a, o, s) { r(e.append("text").attr("x", n + a / 2).attr("y", i + o / 2 + 5).style("text-anchor", "middle").text(t), s) } function e(t, e, n, i, a, o, s, u) { for (var c = u.actorFontSize, f = u.actorFontFamily, l = t.split(/<br\s*\/?>/gi), h = 0; h < l.length; h++) { var d = h * c - c * (l.length - 1) / 2, p = e.append("text").attr("x", n + a / 2).attr("y", i).style("text-anchor", "middle").style("font-size", c).style("font-family", f); p.append("tspan").attr("x", n + a / 2).attr("dy", d).text(l[h]), p.attr("y", i + o / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"), r(p, s) } } function n(t, n, i, a, o, s, u, c) { var f = n.append("switch"), l = f.append("foreignObject").attr("x", i).attr("y", a).attr("width", o).attr("height", s).append("div").style("display", "table").style("height", "100%").style("width", "100%"); l.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(t), e(t, f, i, a, o, s, u, c), r(l, u) } function r(t, e) { for (var n in e) e.hasOwnProperty(n) && t.attr(n, e[n]) } return function(r) { return "fo" === r.textPlacement ? n : "old" === r.textPlacement ? t : e } }(), St = { drawRect: mt, drawText: _t, drawLabel: wt, drawActor: function(t, e, n, r, i) { var a = e + i.width / 2, o = t.append("g"); 0 === n && (xt++, o.append("line").attr("id", "actor" + xt).attr("x1", a).attr("y1", 5).attr("x2", a).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999")); var s = Et(); s.x = e, s.y = n, s.fill = "#eaeaea", s.width = i.width, s.height = i.height, s.class = "actor", s.rx = 3, s.ry = 3, mt(o, s), At(i)(r, o, s.x, s.y, s.width, s.height, { class: "actor" }, i) }, anchorElement: function(t) { return t.append("g") }, drawActivation: function(t, e, n, r, i) { var a = Et(), o = e.anchored; a.x = e.startx, a.y = e.starty, a.class = "activation" + i % 3, a.width = e.stopx - e.startx, a.height = n - e.starty, mt(o, a) }, drawLoop: function(t, e, n, r) { var i = t.append("g"), a = function(t, e, n, r) { return i.append("line").attr("x1", t).attr("y1", e).attr("x2", n).attr("y2", r).attr("class", "loopLine") }; a(e.startx, e.starty, e.stopx, e.starty), a(e.stopx, e.starty, e.stopx, e.stopy), a(e.startx, e.stopy, e.stopx, e.stopy), a(e.startx, e.starty, e.startx, e.stopy), void 0 !== e.sections && e.sections.forEach((function(t) { a(e.startx, t, e.stopx, t).style("stroke-dasharray", "3, 3") })); var o = kt(); o.text = n, o.x = e.startx, o.y = e.starty, o.labelMargin = 15, o.class = "labelText", wt(i, o), (o = kt()).text = "[ " + e.title + " ]", o.x = e.startx + (e.stopx - e.startx) / 2, o.y = e.starty + 1.5 * r.boxMargin, o.anchor = "middle", o.class = "loopText", _t(i, o), void 0 !== e.sectionTitles && e.sectionTitles.forEach((function(t, n) { "" !== t && (o.text = "[ " + t + " ]", o.y = e.sections[n] + 1.5 * r.boxMargin, _t(i, o)) })) }, drawBackgroundRect: function(t, e) { mt(t, { x: e.startx, y: e.starty, width: e.stopx - e.startx, height: e.stopy - e.starty, fill: e.fill, class: "rect" }).lower() }, insertArrowHead: function(t) { t.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z") }, insertSequenceNumber: function(t) { t.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6) }, insertArrowCrossHead: function(t) { var e = t.append("defs").append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4); e.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z"), e.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7") }, getTextObj: kt, getNoteRect: Et }, Mt = n(1), Tt = n.n(Mt), Dt = {}, Ct = [], Nt = [], It = "", Lt = function(t, e, n) { var r = Dt[t]; r && e === r.name && null == n || (null == n && (n = e), Dt[t] = { name: e, description: n }) }, Bt = function(t, e, n, r) { if (_.debug("Adding message from=" + t + " to=" + e + " message=" + n + " type=" + r), r === Ot.ACTIVE_END) { var i = function(t) { var e = 0, n = 0; for (e = 0; e < Ct.length; e++) Ct[e].type === Ot.ACTIVE_START && Ct[e].from.actor === t && n++, Ct[e].type === Ot.ACTIVE_END && Ct[e].from.actor === t && n--; return n }(t.actor); if (_.debug("Adding message from=", Ct, i), i < 1) { var a = new Error("Trying to inactivate an inactive participant (" + t.actor + ")"); throw a.hash = { text: "->>-", token: "->>-", line: "1", loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, expected: ["'ACTIVE_PARTICIPANT'"] }, a } } return Ct.push({ from: t, to: e, message: n, type: r }), !0 }, Ot = { SOLID: 0, DOTTED: 1, NOTE: 2, SOLID_CROSS: 3, DOTTED_CROSS: 4, SOLID_OPEN: 5, DOTTED_OPEN: 6, LOOP_START: 10, LOOP_END: 11, ALT_START: 12, ALT_ELSE: 13, ALT_END: 14, OPT_START: 15, OPT_END: 16, ACTIVE_START: 17, ACTIVE_END: 18, PAR_START: 19, PAR_AND: 20, PAR_END: 21, RECT_START: 22, RECT_END: 23 }, Rt = function(t, e, n) { var r = { actor: t, placement: e, message: n }, i = [].concat(t, t); Nt.push(r), Ct.push({ from: i[0], to: i[1], message: n, type: Ot.NOTE, placement: e }) }, Pt = function(t) { It = t }, Ft = { addActor: Lt, addMessage: function(t, e, n, r) { Ct.push({ from: t, to: e, message: n, answer: r }) }, addSignal: Bt, getMessages: function() { return Ct }, getActors: function() { return Dt }, getActor: function(t) { return Dt[t] }, getActorKeys: function() { return Object.keys(Dt) }, getTitle: function() { return It }, clear: function() { Dt = {}, Ct = [] }, LINETYPE: Ot, ARROWTYPE: { FILLED: 0, OPEN: 1 }, PLACEMENT: { LEFTOF: 0, RIGHTOF: 1, OVER: 2 }, addNote: Rt, setTitle: Pt, apply: function t(e) { if (e instanceof Array) e.forEach((function(e) { t(e) })); else switch (e.type) { case "addActor": Lt(e.actor, e.actor, e.description); break; case "activeStart": case "activeEnd": Bt(e.actor, void 0, void 0, e.signalType); break; case "addNote": Rt(e.actor, e.placement, e.text); break; case "addMessage": Bt(e.from, e.to, e.msg, e.signalType); break; case "loopStart": Bt(void 0, void 0, e.loopText, e.signalType); break; case "loopEnd": Bt(void 0, void 0, void 0, e.signalType); break; case "rectStart": Bt(void 0, void 0, e.color, e.signalType); break; case "rectEnd": Bt(void 0, void 0, void 0, e.signalType); break; case "optStart": Bt(void 0, void 0, e.optText, e.signalType); break; case "optEnd": Bt(void 0, void 0, void 0, e.signalType); break; case "altStart": case "else": Bt(void 0, void 0, e.altText, e.signalType); break; case "altEnd": Bt(void 0, void 0, void 0, e.signalType); break; case "setTitle": Pt(e.text); break; case "parStart": case "and": Bt(void 0, void 0, e.parText, e.signalType); break; case "parEnd": Bt(void 0, void 0, void 0, e.signalType) } } }; Mt.parser.yy = Ft; var qt = { diagramMarginX: 50, diagramMarginY: 30, actorMargin: 50, width: 150, height: 65, actorFontSize: 14, actorFontFamily: '"Open-Sans", "sans-serif"', boxMargin: 10, boxTextMargin: 5, noteMargin: 10, messageMargin: 35, mirrorActors: !1, bottomMarginAdj: 1, activationWidth: 10, textPlacement: "tspan", showSequenceNumbers: !1 }, jt = { data: { startx: void 0, stopx: void 0, starty: void 0, stopy: void 0 }, verticalPos: 0, sequenceItems: [], activations: [], init: function() { this.sequenceItems = [], this.activations = [], this.data = { startx: void 0, stopx: void 0, starty: void 0, stopy: void 0 }, this.verticalPos = 0 }, updateVal: function(t, e, n, r) { void 0 === t[e] ? t[e] = n : t[e] = r(n, t[e]) }, updateBounds: function(t, e, n, r) { var i = this, a = 0; function o(o) { return function(s) { a++; var u = i.sequenceItems.length - a + 1; i.updateVal(s, "starty", e - u * qt.boxMargin, Math.min), i.updateVal(s, "stopy", r + u * qt.boxMargin, Math.max), i.updateVal(jt.data, "startx", t - u * qt.boxMargin, Math.min), i.updateVal(jt.data, "stopx", n + u * qt.boxMargin, Math.max), "activation" !== o && (i.updateVal(s, "startx", t - u * qt.boxMargin, Math.min), i.updateVal(s, "stopx", n + u * qt.boxMargin, Math.max), i.updateVal(jt.data, "starty", e - u * qt.boxMargin, Math.min), i.updateVal(jt.data, "stopy", r + u * qt.boxMargin, Math.max)) } } this.sequenceItems.forEach(o()), this.activations.forEach(o("activation")) }, insert: function(t, e, n, r) { var i = Math.min(t, n), a = Math.max(t, n), o = Math.min(e, r), s = Math.max(e, r); this.updateVal(jt.data, "startx", i, Math.min), this.updateVal(jt.data, "starty", o, Math.min), this.updateVal(jt.data, "stopx", a, Math.max), this.updateVal(jt.data, "stopy", s, Math.max), this.updateBounds(i, o, a, s) }, newActivation: function(t, e) { var n = Mt.parser.yy.getActors()[t.from.actor], r = Yt(t.from.actor).length, i = n.x + qt.width / 2 + (r - 1) * qt.activationWidth / 2; this.activations.push({ startx: i, starty: this.verticalPos + 2, stopx: i + qt.activationWidth, stopy: void 0, actor: t.from.actor, anchored: St.anchorElement(e) }) }, endActivation: function(t) { var e = this.activations.map((function(t) { return t.actor })).lastIndexOf(t.from.actor); return this.activations.splice(e, 1)[0] }, newLoop: function(t, e) { this.sequenceItems.push({ startx: void 0, starty: this.verticalPos, stopx: void 0, stopy: void 0, title: t, fill: e }) }, endLoop: function() { return this.sequenceItems.pop() }, addSectionToLoop: function(t) { var e = this.sequenceItems.pop(); e.sections = e.sections || [], e.sectionTitles = e.sectionTitles || [], e.sections.push(jt.getVerticalPos()), e.sectionTitles.push(t), this.sequenceItems.push(e) }, bumpVerticalPos: function(t) { this.verticalPos = this.verticalPos + t, this.data.stopy = this.verticalPos }, getVerticalPos: function() { return this.verticalPos }, getBounds: function() { return this.data } }, Ut = function(t, e, n, r, i) { var a = St.getNoteRect(); a.x = e, a.y = n, a.width = i || qt.width, a.class = "note"; var o = t.append("g"), s = St.drawRect(o, a), u = function(t, e, n, r, i) { var a = 0, o = t.split(/<br\s*\/?>/gi), s = !0, u = !1, c = void 0; try { for (var f, l = o[Symbol.iterator](); !(s = (f = l.next()).done); s = !0) { var h = f.value, d = St.getTextObj(); d.x = e, d.y = n + a, d.textMargin = qt.noteMargin, d.dy = "1em", d.text = h, d.class = "noteText"; var p = St.drawText(r, d, i); a += (p._groups || p)[0][0].getBBox().height } } catch (t) { u = !0, c = t } finally { try { s || null == l.return || l.return() } finally { if (u) throw c } } return a }(r.message, e - 4, n + 24, o, a.width - qt.noteMargin); jt.insert(e, n, e + a.width, n + 2 * qt.noteMargin + u), s.attr("height", u + 2 * qt.noteMargin), jt.bumpVerticalPos(u + 2 * qt.noteMargin) }, zt = function(t, e, n, r) { for (var i = 0; i < n.length; i++) { var a = n[i]; e[a].x = i * qt.actorMargin + i * qt.width, e[a].y = r, e[a].width = qt.diagramMarginX, e[a].height = qt.diagramMarginY, St.drawActor(t, e[a].x, r, e[a].description, qt), jt.insert(e[a].x, r, e[a].x + qt.width, qt.height) } jt.bumpVerticalPos(qt.height) }, Yt = function(t) { return jt.activations.filter((function(e) { return e.actor === t })) }, Vt = function(t) { var e = Mt.parser.yy.getActors(), n = Yt(t); return [n.reduce((function(t, e) { return Math.min(t, e.startx) }), e[t].x + qt.width / 2), n.reduce((function(t, e) { return Math.max(t, e.stopx) }), e[t].x + qt.width / 2)] }, Ht = function(t) { Object.keys(t).forEach((function(e) { qt[e] = t[e] })), qt.actorFontFamily = t.fontFamily }, Gt = function(t, e) { Mt.parser.yy.clear(), Mt.parser.parse(t + "\n"), jt.init(); var n, r, i, o = a.select('[id="'.concat(e, '"]')), s = Mt.parser.yy.getActors(), u = Mt.parser.yy.getActorKeys(), c = Mt.parser.yy.getMessages(), f = Mt.parser.yy.getTitle(); zt(o, s, u, 0), St.insertArrowHead(o), St.insertArrowCrossHead(o), St.insertSequenceNumber(o); var l = 1; c.forEach((function(t) { var e; switch (t.type) { case Mt.parser.yy.LINETYPE.NOTE: jt.bumpVerticalPos(qt.boxMargin), n = s[t.from].x, r = s[t.to].x, t.placement === Mt.parser.yy.PLACEMENT.RIGHTOF ? Ut(o, n + (qt.width + qt.actorMargin) / 2, jt.getVerticalPos(), t) : t.placement === Mt.parser.yy.PLACEMENT.LEFTOF ? Ut(o, n - (qt.width + qt.actorMargin) / 2, jt.getVerticalPos(), t) : t.to === t.from ? Ut(o, n, jt.getVerticalPos(), t) : (i = Math.abs(n - r) + qt.actorMargin, Ut(o, (n + r + qt.width - i) / 2, jt.getVerticalPos(), t, i)); break; case Mt.parser.yy.LINETYPE.ACTIVE_START: jt.newActivation(t, o); break; case Mt.parser.yy.LINETYPE.ACTIVE_END: ! function(t, e) { var n = jt.endActivation(t); n.starty + 18 > e && (n.starty = e - 6, e += 12), St.drawActivation(o, n, e, qt, Yt(t.from.actor).length), jt.insert(n.startx, e - 10, n.stopx, e) }(t, jt.getVerticalPos()); break; case Mt.parser.yy.LINETYPE.LOOP_START: jt.bumpVerticalPos(qt.boxMargin), jt.newLoop(t.message), jt.bumpVerticalPos(qt.boxMargin + qt.boxTextMargin); break; case Mt.parser.yy.LINETYPE.LOOP_END: e = jt.endLoop(), St.drawLoop(o, e, "loop", qt), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.RECT_START: jt.bumpVerticalPos(qt.boxMargin), jt.newLoop(void 0, t.message), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.RECT_END: var a = jt.endLoop(); St.drawBackgroundRect(o, a), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.OPT_START: jt.bumpVerticalPos(qt.boxMargin), jt.newLoop(t.message), jt.bumpVerticalPos(qt.boxMargin + qt.boxTextMargin); break; case Mt.parser.yy.LINETYPE.OPT_END: e = jt.endLoop(), St.drawLoop(o, e, "opt", qt), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.ALT_START: jt.bumpVerticalPos(qt.boxMargin), jt.newLoop(t.message), jt.bumpVerticalPos(qt.boxMargin + qt.boxTextMargin); break; case Mt.parser.yy.LINETYPE.ALT_ELSE: jt.bumpVerticalPos(qt.boxMargin), e = jt.addSectionToLoop(t.message), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.ALT_END: e = jt.endLoop(), St.drawLoop(o, e, "alt", qt), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.PAR_START: jt.bumpVerticalPos(qt.boxMargin), jt.newLoop(t.message), jt.bumpVerticalPos(qt.boxMargin + qt.boxTextMargin); break; case Mt.parser.yy.LINETYPE.PAR_AND: jt.bumpVerticalPos(qt.boxMargin), e = jt.addSectionToLoop(t.message), jt.bumpVerticalPos(qt.boxMargin); break; case Mt.parser.yy.LINETYPE.PAR_END: e = jt.endLoop(), St.drawLoop(o, e, "par", qt), jt.bumpVerticalPos(qt.boxMargin); break; default: try { jt.bumpVerticalPos(qt.messageMargin); var u = Vt(t.from), c = Vt(t.to), f = u[0] <= c[0] ? 1 : 0, h = u[0] < c[0] ? 0 : 1; n = u[f], r = c[h]; var d = jt.getVerticalPos(); ! function(t, e, n, r, i, a) { var o, s = t.append("g"), u = e + (n - e) / 2, c = 0, f = i.message.split(/<br\s*\/?>/gi), l = !0, h = !1, d = void 0; try { for (var p, g = f[Symbol.iterator](); !(l = (p = g.next()).done); l = !0) { var y = p.value; o = s.append("text").attr("x", u).attr("y", r - 7 + 17 * c).style("text-anchor", "middle").attr("class", "messageText").text(y.trim()), c++ } } catch (t) { h = !0, d = t } finally { try { l || null == g.return || g.return() } finally { if (h) throw d } } var b, v = 17 * (c - 1), m = (o._groups || o)[0][0].getBBox().width; if (e === n) { b = qt.rightAngles ? s.append("path").attr("d", "M ".concat(e, ",").concat(r + v, " H ").concat(e + qt.width / 2, " V ").concat(r + 25 + v, " H ").concat(e)) : s.append("path").attr("d", "M " + e + "," + (r + v) + " C " + (e + 60) + "," + (r - 10 + v) + " " + (e + 60) + "," + (r + 30 + v) + " " + e + "," + (r + 20 + v)), jt.bumpVerticalPos(30 + v); var _ = Math.max(m / 2, 100); jt.insert(e - _, jt.getVerticalPos() - 10 + v, n + _, jt.getVerticalPos() + v) } else(b = s.append("line")).attr("x1", e), b.attr("y1", r), b.attr("x2", n), b.attr("y2", r), jt.insert(e, jt.getVerticalPos() - 10 + v, n, jt.getVerticalPos() + v); i.type === Mt.parser.yy.LINETYPE.DOTTED || i.type === Mt.parser.yy.LINETYPE.DOTTED_CROSS || i.type === Mt.parser.yy.LINETYPE.DOTTED_OPEN ? (b.style("stroke-dasharray", "3, 3"), b.attr("class", "messageLine1")) : b.attr("class", "messageLine0"); var w = ""; qt.arrowMarkerAbsolute && (w = (w = (w = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search).replace(/\(/g, "\\(")).replace(/\)/g, "\\)")), b.attr("stroke-width", 2), b.attr("stroke", "black"), b.style("fill", "none"), i.type !== Mt.parser.yy.LINETYPE.SOLID && i.type !== Mt.parser.yy.LINETYPE.DOTTED || b.attr("marker-end", "url(" + w + "#arrowhead)"), i.type !== Mt.parser.yy.LINETYPE.SOLID_CROSS && i.type !== Mt.parser.yy.LINETYPE.DOTTED_CROSS || b.attr("marker-end", "url(" + w + "#crosshead)"), qt.showSequenceNumbers && (b.attr("marker-start", "url(" + w + "#sequencenumber)"), s.append("text").attr("x", e).attr("y", r + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("textLength", "16px").attr("class", "sequenceNumber").text(a)) }(o, n, r, d, t, l); var p = u.concat(c); jt.insert(Math.min.apply(null, p), d, Math.max.apply(null, p), d) } catch (t) { _.error("error while drawing message", t) } } [Mt.parser.yy.LINETYPE.SOLID_OPEN, Mt.parser.yy.LINETYPE.DOTTED_OPEN, Mt.parser.yy.LINETYPE.SOLID, Mt.parser.yy.LINETYPE.DOTTED, Mt.parser.yy.LINETYPE.SOLID_CROSS, Mt.parser.yy.LINETYPE.DOTTED_CROSS].includes(t.type) && l++ })), qt.mirrorActors && (jt.bumpVerticalPos(2 * qt.boxMargin), zt(o, s, u, jt.getVerticalPos())); var h = jt.getBounds(); _.debug("For line height fix Querying: #" + e + " .actor-line"), a.selectAll("#" + e + " .actor-line").attr("y2", h.stopy); var d = h.stopy - h.starty + 2 * qt.diagramMarginY; qt.mirrorActors && (d = d - qt.boxMargin + qt.bottomMarginAdj); var p = h.stopx - h.startx + 2 * qt.diagramMarginX; f && o.append("text").text(f).attr("x", (h.stopx - h.startx) / 2 - 2 * qt.diagramMarginX).attr("y", -25), qt.useMaxWidth ? (o.attr("height", "100%"), o.attr("width", "100%"), o.attr("style", "max-width:" + p + "px;")) : (o.attr("height", d), o.attr("width", p)); var g = f ? 40 : 0; o.attr("viewBox", h.startx - qt.diagramMarginX + " -" + (qt.diagramMarginY + g) + " " + p + " " + (d + g)) }, $t = n(26), Wt = n.n($t); function Kt(t) { return function(t) { if (Array.isArray(t)) { for (var e = 0, n = new Array(t.length); e < t.length; e++) n[e] = t[e]; return n } }(t) || function(t) { if (Symbol.iterator in Object(t) || "[object Arguments]" === Object.prototype.toString.call(t)) return Array.from(t) }(t) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance") }() } var Xt, Zt, Jt = h(), Qt = "", te = "", ee = [], ne = "", re = [], ie = [], ae = "", oe = ["active", "done", "crit", "milestone"], se = [], ue = !1, ce = function(t, e, n) { return t.isoWeekday() >= 6 && n.indexOf("weekends") >= 0 || (n.indexOf(t.format("dddd").toLowerCase()) >= 0 || n.indexOf(t.format(e.trim())) >= 0) }, fe = function(t, e, n) { if (n.length && !t.manualEndTime) { var r = p()(t.startTime, e, !0); r.add(1, "d"); var i = p()(t.endTime, e, !0), a = le(r, i, e, n); t.endTime = i.toDate(), t.renderEndTime = a } }, le = function(t, e, n, r) { for (var i = !1, a = null; t <= e;) i || (a = e.toDate()), (i = ce(t, n, r)) && e.add(1, "d"), t.add(1, "d"); return a }, he = function(t, e, n) { n = n.trim(); var r = /^after\s+([\d\w- ]+)/.exec(n.trim()); if (null !== r) { var i = null; if (r[1].split(" ").forEach((function(t) { var e = me(t); void 0 !== e && (i ? e.endTime > i.endTime && (i = e) : i = e) })), i) return i.endTime; var a = new Date; return a.setHours(0, 0, 0, 0), a } var o = p()(n, e.trim(), !0); return o.isValid() ? o.toDate() : (_.debug("Invalid date:" + n), _.debug("With date format:" + e.trim()), new Date) }, de = function(t, e) { if (null !== t) switch (t[2]) { case "s": e.add(t[1], "seconds"); break; case "m": e.add(t[1], "minutes"); break; case "h": e.add(t[1], "hours"); break; case "d": e.add(t[1], "days"); break; case "w": e.add(t[1], "weeks") } return e.toDate() }, pe = function(t, e, n, r) { r = r || !1, n = n.trim(); var i = p()(n, e.trim(), !0); return i.isValid() ? (r && i.add(1, "d"), i.toDate()) : de(/^([\d]+)([wdhms])/.exec(n.trim()), p()(t)) }, ge = 0, ye = function(t) { return void 0 === t ? "task" + (ge += 1) : t }, be = [], ve = {}, me = function(t) { var e = ve[t]; return be[e] }, _e = function() { for (var t = function(t) { var e = be[t], n = ""; switch (be[t].raw.startTime.type) { case "prevTaskEnd": var r = me(e.prevTaskId); e.startTime = r.endTime; break; case "getStartDate": (n = he(0, Qt, be[t].raw.startTime.startData)) && (be[t].startTime = n) } return be[t].startTime && (be[t].endTime = pe(be[t].startTime, Qt, be[t].raw.endTime.data, ue), be[t].endTime && (be[t].processed = !0, be[t].manualEndTime = p()(be[t].raw.endTime.data, "YYYY-MM-DD", !0).isValid(), fe(be[t], Qt, ee))), be[t].processed }, e = !0, n = 0; n < be.length; n++) t(n), e = e && be[n].processed; return e }, we = function(t, e) { t.split(",").forEach((function(t) { var n = me(t); void 0 !== n && n.classes.push(e) })) }, xe = function(t, e) { se.push((function() { var n = document.querySelector('[id="'.concat(t, '"]')); null !== n && n.addEventListener("click", (function() { e() })) })), se.push((function() { var n = document.querySelector('[id="'.concat(t, '-text"]')); null !== n && n.addEventListener("click", (function() { e() })) })) }, ke = { clear: function() { re = [], ie = [], ae = "", se = [], ne = "", ge = 0, Xt = void 0, Zt = void 0, be = [], Qt = "", te = "", ee = [], ue = !1 }, setDateFormat: function(t) { Qt = t }, getDateFormat: function() { return Qt }, enableInclusiveEndDates: function() { ue = !0 }, endDatesAreInclusive: function() { return ue }, setAxisFormat: function(t) { te = t }, getAxisFormat: function() { return te }, setTitle: function(t) { ne = t }, getTitle: function() { return ne }, addSection: function(t) { ae = t, re.push(t) }, getSections: function() { return re }, getTasks: function() { for (var t = _e(), e = 0; !t && e < 10;) t = _e(), e++; return ie = be }, addTask: function(t, e) { var n = { section: ae, type: ae, processed: !1, manualEndTime: !1, renderEndTime: null, raw: { data: e }, task: t, classes: [] }, r = function(t, e) { var n = (":" === e.substr(0, 1) ? e.substr(1, e.length) : e).split(","), r = {}; Ee(n, r, oe); for (var i = 0; i < n.length; i++) n[i] = n[i].trim(); switch (n.length) { case 1: r.id = ye(), r.startTime = { type: "prevTaskEnd", id: t }, r.endTime = { data: n[0] }; break; case 2: r.id = ye(), r.startTime = { type: "getStartDate", startData: n[0] }, r.endTime = { data: n[1] }; break; case 3: r.id = ye(n[0]), r.startTime = { type: "getStartDate", startData: n[1] }, r.endTime = { data: n[2] } } return r }(Zt, e); n.raw.startTime = r.startTime, n.raw.endTime = r.endTime, n.id = r.id, n.prevTaskId = Zt, n.active = r.active, n.done = r.done, n.crit = r.crit, n.milestone = r.milestone; var i = be.push(n); Zt = n.id, ve[n.id] = i - 1 }, findTaskById: me, addTaskOrg: function(t, e) { var n = { section: ae, type: ae, description: t, task: t, classes: [] }, r = function(t, e) { var n = (":" === e.substr(0, 1) ? e.substr(1, e.length) : e).split(","), r = {}; Ee(n, r, oe); for (var i = 0; i < n.length; i++) n[i] = n[i].trim(); var a = ""; switch (n.length) { case 1: r.id = ye(), r.startTime = t.endTime, a = n[0]; break; case 2: r.id = ye(), r.startTime = he(0, Qt, n[0]), a = n[1]; break; case 3: r.id = ye(n[0]), r.startTime = he(0, Qt, n[1]), a = n[2] } return a && (r.endTime = pe(r.startTime, Qt, a, ue), r.manualEndTime = p()(a, "YYYY-MM-DD", !0).isValid(), fe(r, Qt, ee)), r }(Xt, e); n.startTime = r.startTime, n.endTime = r.endTime, n.id = r.id, n.active = r.active, n.done = r.done, n.crit = r.crit, n.milestone = r.milestone, Xt = n, ie.push(n) }, setExcludes: function(t) { ee = t.toLowerCase().split(/[\s,]+/) }, getExcludes: function() { return ee }, setClickEvent: function(t, e, n) { t.split(",").forEach((function(t) { ! function(t, e, n) { if ("loose" === Jt.securityLevel && void 0 !== e) { var r = []; if ("string" == typeof n) { r = n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); for (var i = 0; i < r.length; i++) { var a = r[i].trim(); '"' === a.charAt(0) && '"' === a.charAt(a.length - 1) && (a = a.substr(1, a.length - 2)), r[i] = a } } 0 === r.length && r.push(t), void 0 !== me(t) && xe(t, (function() { var t; (t = window)[e].apply(t, Kt(r)) })) } }(t, e, n) })), we(t, "clickable") }, setLink: function(t, e) { var n = e; "loose" !== Jt.securityLevel && (n = Object(k.sanitizeUrl)(e)), t.split(",").forEach((function(t) { void 0 !== me(t) && xe(t, (function() { window.open(n, "_self") })) })), we(t, "clickable") }, bindFunctions: function(t) { se.forEach((function(e) { e(t) })) }, durationToDate: de }; function Ee(t, e, n) { for (var r = !0; r;) r = !1, n.forEach((function(n) { var i = new RegExp("^\\s*" + n + "\\s*$"); t[0].match(i) && (e[n] = !0, t.shift(1), r = !0) })) } $t.parser.yy = ke; var Ae, Se = { titleTopMargin: 25, barHeight: 20, barGap: 4, topPadding: 50, rightPadding: 75, leftPadding: 75, gridLineStartPadding: 35, fontSize: 11, fontFamily: '"Open-Sans", "sans-serif"' }, Me = function(t) { Object.keys(t).forEach((function(e) { Se[e] = t[e] })) }, Te = function(t, e) { $t.parser.yy.clear(), $t.parser.parse(t); var n = document.getElementById(e); void 0 === (Ae = n.parentElement.offsetWidth) && (Ae = 1200), void 0 !== Se.useWidth && (Ae = Se.useWidth); var r = $t.parser.yy.getTasks(), i = r.length * (Se.barHeight + Se.barGap) + 2 * Se.topPadding; n.setAttribute("height", "100%"), n.setAttribute("viewBox", "0 0 " + Ae + " " + i); for (var o = a.select('[id="'.concat(e, '"]')), s = a.scaleTime().domain([a.min(r, (function(t) { return t.startTime })), a.max(r, (function(t) { return t.endTime }))]).rangeRound([0, Ae - Se.leftPadding - Se.rightPadding]), u = [], c = 0; c < r.length; c++) u.push(r[c].type); var f = u; function l(t) { for (var e = t.length, n = {}; e;) n[t[--e]] = (n[t[e]] || 0) + 1; return n } u = function(t) { for (var e = {}, n = [], r = 0, i = t.length; r < i; ++r) e.hasOwnProperty(t[r]) || (e[t[r]] = !0, n.push(t[r])); return n }(u), function(t, e, n) { var r = Se.barHeight, i = r + Se.barGap, c = Se.topPadding, h = Se.leftPadding; a.scaleLinear().domain([0, u.length]).range(["#00B9FA", "#F95002"]).interpolate(a.interpolateHcl); (function(t, e, n, r) { var i = a.axisBottom(s).tickSize(-r + e + Se.gridLineStartPadding).tickFormat(a.timeFormat($t.parser.yy.getAxisFormat() || Se.axisFormat || "%Y-%m-%d")); o.append("g").attr("class", "grid").attr("transform", "translate(" + t + ", " + (r - 50) + ")").call(i).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em") })(h, c, 0, n), function(t, e, n, r, i, a, c) { o.append("g").selectAll("rect").data(t).enter().append("rect").attr("x", 0).attr("y", (function(t, r) { return r * e + n - 2 })).attr("width", (function() { return c - Se.rightPadding / 2 })).attr("height", e).attr("class", (function(t) { for (var e = 0; e < u.length; e++) if (t.type === u[e]) return "section section" + e % Se.numberSectionStyles; return "section section0" })); var f = o.append("g").selectAll("rect").data(t).enter(); f.append("rect").attr("id", (function(t) { return t.id })).attr("rx", 3).attr("ry", 3).attr("x", (function(t) { return t.milestone ? s(t.startTime) + r + .5 * (s(t.endTime) - s(t.startTime)) - .5 * i : s(t.startTime) + r })).attr("y", (function(t, r) { return r * e + n })).attr("width", (function(t) { return t.milestone ? i : s(t.renderEndTime || t.endTime) - s(t.startTime) })).attr("height", i).attr("transform-origin", (function(t, a) { return (s(t.startTime) + r + .5 * (s(t.endTime) - s(t.startTime))).toString() + "px " + (a * e + n + .5 * i).toString() + "px" })).attr("class", (function(t) { var e = ""; t.classes.length > 0 && (e = t.classes.join(" ")); for (var n = 0, r = 0; r < u.length; r++) t.type === u[r] && (n = r % Se.numberSectionStyles); var i = ""; return t.active ? t.crit ? i += " activeCrit" : i = " active" : t.done ? i = t.crit ? " doneCrit" : " done" : t.crit && (i += " crit"), 0 === i.length && (i = " task"), t.milestone && (i = " milestone " + i), i += n, "task" + (i += " " + e) })), f.append("text").attr("id", (function(t) { return t.id + "-text" })).text((function(t) { return t.task })).attr("font-size", Se.fontSize).attr("x", (function(t) { var e = s(t.startTime), n = s(t.renderEndTime || t.endTime); t.milestone && (e += .5 * (s(t.endTime) - s(t.startTime)) - .5 * i), t.milestone && (n = e + i); var a = this.getBBox().width; return a > n - e ? n + a + 1.5 * Se.leftPadding > c ? e + r - 5 : n + r + 5 : (n - e) / 2 + e + r })).attr("y", (function(t, r) { return r * e + Se.barHeight / 2 + (Se.fontSize / 2 - 2) + n })).attr("text-height", i).attr("class", (function(t) { var e = s(t.startTime), n = s(t.endTime); t.milestone && (n = e + i); var r = this.getBBox().width, a = ""; t.classes.length > 0 && (a = t.classes.join(" ")); for (var o = 0, f = 0; f < u.length; f++) t.type === u[f] && (o = f % Se.numberSectionStyles); var l = ""; return t.active && (l = t.crit ? "activeCritText" + o : "activeText" + o), t.done ? l = t.crit ? l + " doneCritText" + o : l + " doneText" + o : t.crit && (l = l + " critText" + o), t.milestone && (l += " milestoneText"), r > n - e ? n + r + 1.5 * Se.leftPadding > c ? a + " taskTextOutsideLeft taskTextOutside" + o + " " + l : a + " taskTextOutsideRight taskTextOutside" + o + " " + l + " width-" + r : a + " taskText taskText" + o + " " + l + " width-" + r })) }(t, i, c, h, r, 0, e), function(t, e) { for (var n = [], r = 0, i = 0; i < u.length; i++) n[i] = [u[i], (a = u[i], s = f, l(s)[a] || 0)]; var a, s; o.append("g").selectAll("text").data(n).enter().append((function(t) { var e = t[0].split(/<br\s*\/?>/gi), n = -(e.length - 1) / 2, r = document.createElementNS("http://www.w3.org/2000/svg", "text"); r.setAttribute("dy", n + "em"); for (var i = 0; i < e.length; i++) { var a = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); a.setAttribute("alignment-baseline", "central"), a.setAttribute("x", "10"), i > 0 && a.setAttribute("dy", "1em"), a.textContent = e[i], r.appendChild(a) } return r })).attr("x", 10).attr("y", (function(i, a) { if (!(a > 0)) return i[1] * t / 2 + e; for (var o = 0; o < a; o++) return r += n[a - 1][1], i[1] * t / 2 + r * t + e })).attr("class", (function(t) { for (var e = 0; e < u.length; e++) if (t[0] === u[e]) return "sectionTitle sectionTitle" + e % Se.numberSectionStyles; return "sectionTitle" })) }(i, c), function(t, e, n, r) { var i = o.append("g").attr("class", "today"), a = new Date; i.append("line").attr("x1", s(a) + t).attr("x2", s(a) + t).attr("y1", Se.titleTopMargin).attr("y2", r - Se.titleTopMargin).attr("class", "today") }(h, 0, 0, n) }(r, Ae, i), void 0 !== Se.useWidth && n.setAttribute("width", Ae), o.append("text").text($t.parser.yy.getTitle()).attr("x", Ae / 2).attr("y", Se.titleTopMargin).attr("class", "titleText") }, De = n(59), Ce = n.n(De), Ne = h(), Ie = [], Le = {}, Be = 0, Oe = [], Re = function(t) { var e = "", n = t; if (t.indexOf("~") > 0) { var r = t.split("~"); n = r[0], e = r[1] } return { className: n, type: e } }, Pe = function(t) { var e = Re(t); void 0 === Le[e.className] && (Le[e.className] = { id: e.className, type: e.type, cssClasses: [], methods: [], members: [], annotations: [], domId: "classid-" + e.className + "-" + Be }, Be++) }, Fe = function(t) { for (var e = Object.keys(Le), n = 0; n < e.length; n++) if (Le[e[n]].id === t) return Le[e[n]].domId }, qe = function(t, e) { var n = Re(t).className, r = Le[n]; if ("string" == typeof e) { var i = e.trim(); i.startsWith("<<") && i.endsWith(">>") ? r.annotations.push(i.substring(2, i.length - 2)) : i.indexOf(")") > 0 ? r.methods.push(i) : i && r.members.push(i) } }, je = function(t, e) { t.split(",").forEach((function(t) { var n = t; t[0].match(/\d/) && (n = "classid-" + n), void 0 !== Le[n] && Le[n].cssClasses.push(e) })) }, Ue = function(t, e, n) { var r = t, i = Fe(r); "loose" === Ne.securityLevel && void 0 !== e && void 0 !== Le[r] && (n && (Le[r].tooltip = S.sanitize(n, Ne)), Oe.push((function() { var t = document.querySelector('[id="'.concat(i, '"]')); null !== t && t.addEventListener("click", (function() { window[e](i) }), !1) }))) }, ze = function(t) { var e = a.select(".mermaidTooltip"); null === (e._groups || e)[0][0] && (e = a.select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0)), a.select(t).select("svg").selectAll("g.node").on("mouseover", (function() { var t = a.select(this); if (null !== t.attr("title")) { var n = this.getBoundingClientRect(); e.transition().duration(200).style("opacity", ".9"), e.html(t.attr("title")).style("left", n.left + (n.right - n.left) / 2 + "px").style("top", n.top - 14 + document.body.scrollTop + "px"), t.classed("hover", !0) } })).on("mouseout", (function() { e.transition().duration(500).style("opacity", 0), a.select(this).classed("hover", !1) })) }; Oe.push(ze); var Ye = { addClass: Pe, bindFunctions: function(t) { Oe.forEach((function(e) { e(t) })) }, clear: function() { Ie = [], Le = {}, (Oe = []).push(ze) }, getClass: function(t) { return Le[t] }, getClasses: function() { return Le }, addAnnotation: function(t, e) { var n = Re(t).className; Le[n].annotations.push(e) }, getRelations: function() { return Ie }, addRelation: function(t) { _.debug("Adding relation: " + JSON.stringify(t)), Pe(t.id1), Pe(t.id2), t.id1 = Re(t.id1).className, t.id2 = Re(t.id2).className, Ie.push(t) }, addMember: qe, addMembers: function(t, e) { Array.isArray(e) && (e.reverse(), e.forEach((function(e) { return qe(t, e) }))) }, cleanupLabel: function(t) { return ":" === t.substring(0, 1) ? t.substr(1).trim() : t.trim() }, lineType: { LINE: 0, DOTTED_LINE: 1 }, relationType: { AGGREGATION: 0, EXTENSION: 1, COMPOSITION: 2, DEPENDENCY: 3 }, setClickEvent: function(t, e, n) { t.split(",").forEach((function(t) { Ue(t, e, n) })), je(t, "clickable") }, setCssClass: je, setLink: function(t, e, n) { t.split(",").forEach((function(t) { var r = t; t[0].match(/\d/) && (r = "classid-" + r), void 0 !== Le[r] && (Le[r].link = S.formatUrl(e, Ne), n && (Le[r].tooltip = S.sanitize(n, Ne))) })), je(t, "clickable") }, lookUpDomId: Fe }, Ve = n(46), He = n.n(Ve); Ve.parser.yy = Ye; var Ge = {}, $e = { dividerMargin: 10, padding: 5, textHeight: 10 }, We = function(t) { for (var e = Object.keys(Ge), n = 0; n < e.length; n++) if (Ge[e[n]].label === t) return e[n] }, Ke = 0, Xe = function(t, e) { _.info("Rendering class " + e); var n = "classGroup "; e.cssClasses.length > 0 && (n += e.cssClasses.join(" ")); var r, i = function(t, e, n) { var r = e.indexOf(")") > 1, i = e, o = ""; if (r) { var s = a(e); i = s.displayText, o = s.cssStyle } var u = t.append("tspan").attr("x", $e.padding).text(i); "" !== o && u.attr("style", o), n || u.attr("dy", $e.textHeight) }, a = function(t) { var e = "", n = t, r = t, i = "", a = t.match(/(\+|-|~|#)?(\w+)\s?\((\w+(<\w+>|\[\])?\s?(\w+)?)?\)\s?([*|$])?\s?(\w+(<\w+>|\[\])?)?/); if (a) { var o = a[1] ? a[1].trim() : ""; r = a[2] ? a[2].trim() : ""; var s = a[3] ? a[3].trim() : ""; i = a[6] ? a[6].trim() : "", n = o + r + "(" + s + ")" + (a[7] ? " : " + a[7].trim() : "") } else { var u = n.indexOf(")") + 1; "" !== (i = n.substring(u, u + 1)) && " " !== i && (n = n.replace(i, "")) } switch (i) { case "*": e = "font-style:italic;"; break; case "$": e = "text-decoration:underline;" } return { methodname: r, displayText: n, cssStyle: e } }, o = e.id, s = { id: o, label: e.id, width: 0, height: 0 }, u = t.append("g").attr("id", Fe(o)).attr("class", n); r = e.link ? u.append("svg:a").attr("xlink:href", e.link).attr("target", "_blank").append("text").attr("y", $e.textHeight + $e.padding).attr("x", 0) : u.append("text").attr("y", $e.textHeight + $e.padding).attr("x", 0); var c = !0; e.annotations.forEach((function(t) { var e = r.append("tspan").text("«" + t + "»"); c || e.attr("dy", $e.textHeight), c = !1 })); var f = e.id; void 0 !== e.type && "" !== e.type && (f += "<" + e.type + ">"); var l = r.append("tspan").text(f).attr("class", "title"); c || l.attr("dy", $e.textHeight); var h = r.node().getBBox().height, d = u.append("line").attr("x1", 0).attr("y1", $e.padding + h + $e.dividerMargin / 2).attr("y2", $e.padding + h + $e.dividerMargin / 2), p = u.append("text").attr("x", $e.padding).attr("y", h + $e.dividerMargin + $e.textHeight).attr("fill", "white").attr("class", "classText"); c = !0, e.members.forEach((function(t) { i(p, t, c), c = !1 })); var g = p.node().getBBox(), y = u.append("line").attr("x1", 0).attr("y1", $e.padding + h + $e.dividerMargin + g.height).attr("y2", $e.padding + h + $e.dividerMargin + g.height), b = u.append("text").attr("x", $e.padding).attr("y", h + 2 * $e.dividerMargin + g.height + $e.textHeight).attr("fill", "white").attr("class", "classText"); c = !0, e.methods.forEach((function(t) { i(b, t, c), c = !1 })); var v = u.node().getBBox(), m = u.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", v.width + 2 * $e.padding).attr("height", v.height + $e.padding + .5 * $e.dividerMargin).node().getBBox().width; return r.node().childNodes.forEach((function(t) { t.setAttribute("x", (m - t.getBBox().width) / 2) })), e.tooltip && r.insert("title").text(e.tooltip), d.attr("x2", m), y.attr("x2", m), s.width = m, s.height = v.height + $e.padding + .5 * $e.dividerMargin, Ge[o] = s, s }, Ze = function(t) { Object.keys(t).forEach((function(e) { $e[e] = t[e] })) }, Je = function(t, e) { Ge = {}, Ve.parser.yy.clear(), Ve.parser.parse(t), _.info("Rendering diagram " + t); var n, r = a.select("[id='".concat(e, "']")); (n = r).append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), n.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"), n.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), n.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), n.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), n.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), n.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"), n.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); var i = new T.a.Graph({ multigraph: !0 }); i.setGraph({ isMultiGraph: !0 }), i.setDefaultEdgeLabel((function() { return {} })); for (var o = Ye.getClasses(), s = Object.keys(o), u = 0; u < s.length; u++) { var c = o[s[u]], f = Xe(r, c); i.setNode(f.id, f), _.info("Org height: " + f.height) } Ye.getRelations().forEach((function(t) { _.info("tjoho" + We(t.id1) + We(t.id2) + JSON.stringify(t)), i.setEdge(We(t.id1), We(t.id2), { relation: t }, t.title || "DEFAULT") })), Ce.a.layout(i), i.nodes().forEach((function(t) { void 0 !== t && void 0 !== i.node(t) && (_.debug("Node " + t + ": " + JSON.stringify(i.node(t))), a.select("#" + Fe(t)).attr("transform", "translate(" + (i.node(t).x - i.node(t).width / 2) + "," + (i.node(t).y - i.node(t).height / 2) + " )")) })), i.edges().forEach((function(t) { void 0 !== t && void 0 !== i.edge(t) && (_.debug("Edge " + t.v + " -> " + t.w + ": " + JSON.stringify(i.edge(t))), function(t, e, n) { var r = function(t) { switch (t) { case Ye.relationType.AGGREGATION: return "aggregation"; case Ye.relationType.EXTENSION: return "extension"; case Ye.relationType.COMPOSITION: return "composition"; case Ye.relationType.DEPENDENCY: return "dependency" } }; e.points = e.points.filter((function(t) { return !Number.isNaN(t.y) })); var i, o, s = e.points, u = a.line().x((function(t) { return t.x })).y((function(t) { return t.y })).curve(a.curveBasis), c = t.append("path").attr("d", u(s)).attr("id", "edge" + Ke).attr("class", "relation"), f = ""; $e.arrowMarkerAbsolute && (f = (f = (f = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search).replace(/\(/g, "\\(")).replace(/\)/g, "\\)")), 1 == n.relation.lineType && c.attr("class", "relation dashed-line"), "none" !== n.relation.type1 && c.attr("marker-start", "url(" + f + "#" + r(n.relation.type1) + "Start)"), "none" !== n.relation.type2 && c.attr("marker-end", "url(" + f + "#" + r(n.relation.type2) + "End)"); var l, h, d, p, g = e.points.length, y = S.calcLabelPosition(e.points); if (i = y.x, o = y.y, g % 2 != 0 && g > 1) { var b = S.calcCardinalityPosition("none" !== n.relation.type1, e.points, e.points[0]), v = S.calcCardinalityPosition("none" !== n.relation.type2, e.points, e.points[g - 1]); _.debug("cardinality_1_point " + JSON.stringify(b)), _.debug("cardinality_2_point " + JSON.stringify(v)), l = b.x, h = b.y, d = v.x, p = v.y } if (void 0 !== n.title) { var m = t.append("g").attr("class", "classLabel"), w = m.append("text").attr("class", "label").attr("x", i).attr("y", o).attr("fill", "red").attr("text-anchor", "middle").text(n.title); window.label = w; var x = w.node().getBBox(); m.insert("rect", ":first-child").attr("class", "box").attr("x", x.x - $e.padding / 2).attr("y", x.y - $e.padding / 2).attr("width", x.width + $e.padding).attr("height", x.height + $e.padding) }(_.info("Rendering relation " + JSON.stringify(n)), void 0 !== n.relationTitle1 && "none" !== n.relationTitle1) && t.append("g").attr("class", "cardinality").append("text").attr("class", "type1").attr("x", l).attr("y", h).attr("fill", "black").attr("font-size", "6").text(n.relationTitle1); void 0 !== n.relationTitle2 && "none" !== n.relationTitle2 && t.append("g").attr("class", "cardinality").append("text").attr("class", "type2").attr("x", d).attr("y", p).attr("fill", "black").attr("font-size", "6").text(n.relationTitle2); Ke++ }(r, i.edge(t), i.edge(t).relation)) })), r.attr("height", "100%"), r.attr("width", "".concat(1.5 * i.graph().width + 20)), r.attr("viewBox", "-10 -10 " + (i.graph().width + 20) + " " + (i.graph().height + 20)) }; function Qe(t) { return (Qe = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) } var tn, en = [], nn = { root: { relations: [], states: {}, documents: {} } }, rn = nn.root, an = 0, on = function(t, e, n, r, i) { void 0 === rn.states[t] ? rn.states[t] = { id: t, descriptions: [], type: e, doc: n, note: i } : (rn.states[t].doc || (rn.states[t].doc = n), rn.states[t].type || (rn.states[t].type = e)), r && ("string" == typeof r && cn(t, r.trim()), "object" === Qe(r) && r.forEach((function(e) { return cn(t, e.trim()) }))), i && (rn.states[t].note = i) }, sn = function() { rn = (nn = { root: { relations: [], states: {}, documents: {} } }).root }, un = function(t, e, n) { var r = t, i = e, a = "default", o = "default"; "[*]" === t && (r = "start" + ++an, a = "start"), "[*]" === e && (i = "end" + an, o = "end"), on(r, a), on(i, o), rn.relations.push({ id1: r, id2: i, title: n }) }, cn = function(t, e) { var n = rn.states[t], r = e; ":" === r[0] && (r = r.substr(1).trim()), n.descriptions.push(r) }, fn = 0, ln = { addState: on, clear: sn, getState: function(t) { return rn.states[t] }, getStates: function() { return rn.states }, getRelations: function() { return rn.relations }, addRelation: un, getDividerId: function() { return "divider-id-" + ++fn }, cleanupLabel: function(t) { return ":" === t.substring(0, 1) ? t.substr(2).trim() : t.trim() }, lineType: { LINE: 0, DOTTED_LINE: 1 }, relationType: { AGGREGATION: 0, EXTENSION: 1, COMPOSITION: 2, DEPENDENCY: 3 }, logDocuments: function() { _.info("Documents = ", nn) }, getRootDoc: function() { return en }, setRootDoc: function(t) { _.info("Setting root doc", t), en = t }, extract: function(t) { sn(), t.forEach((function(t) { "state" === t.stmt && on(t.id, t.type, t.doc, t.description, t.note), "relation" === t.stmt && un(t.state1.id, t.state2.id, t.description) })) } }, hn = n(47), dn = n.n(hn), pn = {}, gn = function(t, e) { pn[t] = e }, yn = function(t, e) { var n = t.append("text").attr("x", 2 * h().state.padding).attr("y", h().state.textHeight + 1.3 * h().state.padding).attr("font-size", h().state.fontSize).attr("class", "state-title").text(e.descriptions[0]).node().getBBox(), r = n.height, i = t.append("text").attr("x", h().state.padding).attr("y", r + .4 * h().state.padding + h().state.dividerMargin + h().state.textHeight).attr("class", "state-description"), a = !0, o = !0; e.descriptions.forEach((function(t) { a || (! function(t, e, n) { var r = t.append("tspan").attr("x", 2 * h().state.padding).text(e); n || r.attr("dy", h().state.textHeight) }(i, t, o), o = !1), a = !1 })); var s = t.append("line").attr("x1", h().state.padding).attr("y1", h().state.padding + r + h().state.dividerMargin / 2).attr("y2", h().state.padding + r + h().state.dividerMargin / 2).attr("class", "descr-divider"), u = i.node().getBBox(), c = Math.max(u.width, n.width); return s.attr("x2", c + 3 * h().state.padding), t.insert("rect", ":first-child").attr("x", h().state.padding).attr("y", h().state.padding).attr("width", c + 2 * h().state.padding).attr("height", u.height + r + 2 * h().state.padding).attr("rx", h().state.radius), t }, bn = function(t, e, n) { var r, i = h().state.padding, a = 2 * h().state.padding, o = t.node().getBBox(), s = o.width, u = o.x, c = t.append("text").attr("x", 0).attr("y", h().state.titleShift).attr("font-size", h().state.fontSize).attr("class", "state-title").text(e.id), f = c.node().getBBox().width + a, l = Math.max(f, s); l === s && (l += a); var d = t.node().getBBox(); e.doc, r = u - i, f > s && (r = (s - l) / 2 + i), Math.abs(u - d.x) < i && f > s && (r = u - (f - s) / 2); var p = 1 - h().state.textHeight; return t.insert("rect", ":first-child").attr("x", r).attr("y", p).attr("class", n ? "alt-composit" : "composit").attr("width", l).attr("height", d.height + h().state.textHeight + h().state.titleShift + 1).attr("rx", "0"), c.attr("x", r + i), f <= s && c.attr("x", u + (l - a) / 2 - f / 2 + i), t.insert("rect", ":first-child").attr("x", r).attr("y", h().state.titleShift - h().state.textHeight - h().state.padding).attr("width", l).attr("height", 3 * h().state.textHeight).attr("rx", h().state.radius), t.insert("rect", ":first-child").attr("x", r).attr("y", h().state.titleShift - h().state.textHeight - h().state.padding).attr("width", l).attr("height", d.height + 3 + 2 * h().state.textHeight).attr("rx", h().state.radius), t }, vn = function(t, e) { e.attr("class", "state-note"); var n = e.append("rect").attr("x", 0).attr("y", h().state.padding), r = function(t, e, n, r) { var i = 0, a = r.append("text"); a.style("text-anchor", "start"), a.attr("class", "noteText"); var o = t.replace(/\r\n/g, "<br/>"), s = (o = o.replace(/\n/g, "<br/>")).split(/<br\s*\/?>/gi), u = 1.25 * h().state.noteMargin, c = !0, f = !1, l = void 0; try { for (var d, p = s[Symbol.iterator](); !(c = (d = p.next()).done); c = !0) { var g = d.value.trim(); if (g.length > 0) { var y = a.append("tspan"); if (y.text(g), 0 === u) u += y.node().getBBox().height; i += u, y.attr("x", e + h().state.noteMargin), y.attr("y", n + i + 1.25 * h().state.noteMargin) } } } catch (t) { f = !0, l = t } finally { try { c || null == p.return || p.return() } finally { if (f) throw l } } return { textWidth: a.node().getBBox().width, textHeight: i } }(t, 0, 0, e.append("g")), i = r.textWidth, a = r.textHeight; return n.attr("height", a + 2 * h().state.noteMargin), n.attr("width", i + 2 * h().state.noteMargin), n }, mn = function(t, e) { var n = e.id, r = { id: n, label: e.id, width: 0, height: 0 }, i = t.append("g").attr("id", n).attr("class", "stateGroup"); "start" === e.type && function(t) { t.append("circle").style("stroke", "black").style("fill", "black").attr("r", h().state.sizeUnit).attr("cx", h().state.padding + h().state.sizeUnit).attr("cy", h().state.padding + h().state.sizeUnit) }(i), "end" === e.type && function(t) { t.append("circle").style("stroke", "black").style("fill", "white").attr("r", h().state.sizeUnit + h().state.miniPadding).attr("cx", h().state.padding + h().state.sizeUnit + h().state.miniPadding).attr("cy", h().state.padding + h().state.sizeUnit + h().state.miniPadding), t.append("circle").style("stroke", "black").style("fill", "black").attr("r", h().state.sizeUnit).attr("cx", h().state.padding + h().state.sizeUnit + 2).attr("cy", h().state.padding + h().state.sizeUnit + 2) }(i), "fork" !== e.type && "join" !== e.type || function(t, e) { var n = h().state.forkWidth, r = h().state.forkHeight; if (e.parentId) { var i = n; n = r, r = i } t.append("rect").style("stroke", "black").style("fill", "black").attr("width", n).attr("height", r).attr("x", h().state.padding).attr("y", h().state.padding) }(i, e), "note" === e.type && vn(e.note.text, i), "divider" === e.type && function(t) { t.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", h().state.textHeight).attr("class", "divider").attr("x2", 2 * h().state.textHeight).attr("y1", 0).attr("y2", 0) }(i), "default" === e.type && 0 === e.descriptions.length && function(t, e) { var n = t.append("text").attr("x", 2 * h().state.padding).attr("y", h().state.textHeight + 2 * h().state.padding).attr("font-size", h().state.fontSize).attr("class", "state-title").text(e.id), r = n.node().getBBox(); t.insert("rect", ":first-child").attr("x", h().state.padding).attr("y", h().state.padding).attr("width", r.width + 2 * h().state.padding).attr("height", r.height + 2 * h().state.padding).attr("rx", h().state.radius) }(i, e), "default" === e.type && e.descriptions.length > 0 && yn(i, e); var a = i.node().getBBox(); return r.width = a.width + 2 * h().state.padding, r.height = a.height + 2 * h().state.padding, gn(n, r), r }, _n = 0; hn.parser.yy = ln; var wn = {}, xn = function(t) { if (!t) return 1; var e = t.replace(/<br\s*\/?>/gi, "#br#"); return (e = e.replace(/\\n/g, "#br#")).split("#br#") }, kn = function t(e, n, r, i) { var o, s = new T.a.Graph({ compound: !0 }), u = !0; for (o = 0; o < e.length; o++) if ("relation" === e[o].stmt) { u = !1; break } r ? s.setGraph({ rankdir: "LR", compound: !0, ranker: "tight-tree", ranksep: u ? 1 : tn.edgeLengthFactor, nodeSep: u ? 1 : 50 }) : s.setGraph({ rankdir: "TB", compound: !0, ranksep: u ? 1 : tn.edgeLengthFactor, nodeSep: u ? 1 : 50, ranker: "tight-tree" }), s.setDefaultEdgeLabel((function() { return {} })), ln.extract(e); for (var c = ln.getStates(), f = ln.getRelations(), l = Object.keys(c), d = 0; d < l.length; d++) { var p = c[l[d]]; r && (p.parentId = r); var g = void 0; if (p.doc) { var y = n.append("g").attr("id", p.id).attr("class", "stateGroup"); g = t(p.doc, y, p.id, !i); var b = (y = bn(y, p, i)).node().getBBox(); g.width = b.width, g.height = b.height + tn.padding / 2, wn[p.id] = { y: tn.compositTitleSize } } else g = mn(n, p); if (p.note) { var v = { descriptions: [], id: p.id + "-note", note: p.note, type: "note" }, m = mn(n, v); "left of" === p.note.position ? (s.setNode(g.id + "-note", m), s.setNode(g.id, g)) : (s.setNode(g.id, g), s.setNode(g.id + "-note", m)), s.setParent(g.id, g.id + "-group"), s.setParent(g.id + "-note", g.id + "-group") } else s.setNode(g.id, g) } _.info("Count=", s.nodeCount()), f.forEach((function(t) { var e; s.setEdge(t.id1, t.id2, { relation: t, width: (e = t.title, e ? e.length * tn.fontSizeFactor : 1), height: tn.labelHeight * xn(t.title).length, labelpos: "c" }) })), Ce.a.layout(s), _.debug("Graph after layout", s.nodes()); var w = n.node(); s.nodes().forEach((function(t) { void 0 !== t && void 0 !== s.node(t) ? (_.warn("Node " + t + ": " + JSON.stringify(s.node(t))), a.select("#" + w.id + " #" + t).attr("transform", "translate(" + (s.node(t).x - s.node(t).width / 2) + "," + (s.node(t).y + (wn[t] ? wn[t].y : 0) - s.node(t).height / 2) + " )"), a.select("#" + w.id + " #" + t).attr("data-x-shift", s.node(t).x - s.node(t).width / 2), document.querySelectorAll("#" + w.id + " #" + t + " .divider").forEach((function(t) { var e = t.parentElement, n = 0, r = 0; e && (e.parentElement && (n = e.parentElement.getBBox().width), r = parseInt(e.getAttribute("data-x-shift"), 10), Number.isNaN(r) && (r = 0)), t.setAttribute("x1", 0 - r + 8), t.setAttribute("x2", n - r - 8) }))) : _.debug("No Node " + t + ": " + JSON.stringify(s.node(t))) })); var x = w.getBBox(); s.edges().forEach((function(t) { void 0 !== t && void 0 !== s.edge(t) && (_.debug("Edge " + t.v + " -> " + t.w + ": " + JSON.stringify(s.edge(t))), function(t, e, n) { e.points = e.points.filter((function(t) { return !Number.isNaN(t.y) })); var r, i = e.points, o = a.line().x((function(t) { return t.x })).y((function(t) { return t.y })).curve(a.curveBasis), s = t.append("path").attr("d", o(i)).attr("id", "edge" + _n).attr("class", "transition"), u = ""; if (h().state.arrowMarkerAbsolute && (u = (u = (u = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search).replace(/\(/g, "\\(")).replace(/\)/g, "\\)")), s.attr("marker-end", "url(" + u + "#" + function(t) { switch (t) { case ln.relationType.AGGREGATION: return "aggregation"; case ln.relationType.EXTENSION: return "extension"; case ln.relationType.COMPOSITION: return "composition"; case ln.relationType.DEPENDENCY: return "dependency" } }(ln.relationType.DEPENDENCY) + "End)"), void 0 !== n.title) { for (var c = t.append("g").attr("class", "stateLabel"), f = S.calcLabelPosition(e.points), l = f.x, d = f.y, p = (r = n.title, r.replace(/<br\s*\/?>/gi, "#br#").replace(/\\n/g, "#br#").split("#br#")), g = 0, y = [], b = 0; b <= p.length; b++) { var v = c.append("text").attr("text-anchor", "middle").text(p[b]).attr("x", l).attr("y", d + g); if (0 === g) { var m = v.node().getBBox(); g = m.height } y.push(v) } if (p.length > 1) { var _ = p.length * g * .25; y.forEach((function(t, e) { return t.attr("y", d + e * g - _) })) } var w = c.node().getBBox(); c.insert("rect", ":first-child").attr("class", "box").attr("x", w.x - h().state.padding / 2).attr("y", w.y - h().state.padding / 2).attr("width", w.width + h().state.padding).attr("height", w.height + h().state.padding) } _n++ }(n, s.edge(t), s.edge(t).relation)) })), x = w.getBBox(); var k = { id: r || "root", label: r || "root", width: 0, height: 0 }; return k.width = x.width + 2 * tn.padding, k.height = x.height + 2 * tn.padding, _.info("Doc rendered", k, s), k }, En = function() {}, An = function(t, e) { tn = h().state, hn.parser.yy.clear(), hn.parser.parse(t), _.debug("Rendering diagram " + t); var n = a.select("[id='".concat(e, "']")); n.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"), new T.a.Graph({ multigraph: !1, compound: !0, rankdir: "RL" }).setDefaultEdgeLabel((function() { return {} })); var r = ln.getRootDoc(); kn(r, n, void 0, !1); var i = tn.padding, o = n.node().getBBox(), s = o.width + 2 * i, u = o.height + 2 * i; n.attr("width", 1.75 * s), n.attr("viewBox", "".concat(o.x - tn.padding, " ").concat(o.y - tn.padding, " ") + s + " " + u) }, Sn = n(48), Mn = n.n(Sn), Tn = n(230), Dn = n.n(Tn), Cn = {}, Nn = null, In = { master: Nn }, Ln = "master", Bn = "LR", On = 0; function Rn() { return Dn()({ length: 7, characters: "0123456789abcdef" }) } function Pn(t, e) { for (_.debug("Entering isfastforwardable:", t.id, e.id); t.seq <= e.seq && t !== e && null != e.parent;) { if (Array.isArray(e.parent)) return _.debug("In merge commit:", e.parent), Pn(t, Cn[e.parent[0]]) || Pn(t, Cn[e.parent[1]]); e = Cn[e.parent] } return _.debug(t.id, e.id), t.id === e.id } var Fn = {}; function qn(t, e, n) { var r = t.indexOf(e); - 1 === r ? t.push(n) : t.splice(r, 1, n) } var jn, Un = function() { var t = Object.keys(Cn).map((function(t) { return Cn[t] })); return t.forEach((function(t) { _.debug(t.id) })), Mn.a.orderBy(t, ["seq"], ["desc"]) }, zn = { setDirection: function(t) { Bn = t }, setOptions: function(t) { _.debug("options str", t), t = (t = t && t.trim()) || "{}"; try { Fn = JSON.parse(t) } catch (t) { _.error("error while parsing gitGraph options", t.message) } }, getOptions: function() { return Fn }, commit: function(t) { var e = { id: Rn(), message: t, seq: On++, parent: null == Nn ? null : Nn.id }; Nn = e, Cn[e.id] = e, In[Ln] = e.id, _.debug("in pushCommit " + e.id) }, branch: function(t) { In[t] = null != Nn ? Nn.id : null, _.debug("in createBranch") }, merge: function(t) { var e = Cn[In[Ln]], n = Cn[In[t]]; if (function(t, e) { return t.seq > e.seq && Pn(e, t) }(e, n)) _.debug("Already merged"); else { if (Pn(e, n)) In[Ln] = In[t], Nn = Cn[In[Ln]]; else { var r = { id: Rn(), message: "merged branch " + t + " into " + Ln, seq: On++, parent: [null == Nn ? null : Nn.id, In[t]] }; Nn = r, Cn[r.id] = r, In[Ln] = r.id } _.debug(In), _.debug("in mergeBranch") } }, checkout: function(t) { _.debug("in checkout"); var e = In[Ln = t]; Nn = Cn[e] }, reset: function(t) { _.debug("in reset", t); var e = t.split(":")[0], n = parseInt(t.split(":")[1]), r = "HEAD" === e ? Nn : Cn[In[e]]; for (_.debug(r, n); n > 0;) if (n--, !(r = Cn[r.parent])) { var i = "Critical error - unique parent commit not found during reset"; throw _.error(i), i } Nn = r, In[Ln] = r.id }, prettyPrint: function() { _.debug(Cn), function t(e) { var n = Mn.a.maxBy(e, "seq"), r = ""; e.forEach((function(t) { r += t === n ? "\t*" : "\t|" })); var i = [r, n.id, n.seq]; for (var a in In) In[a] === n.id && i.push(a); if (_.debug(i.join(" ")), Array.isArray(n.parent)) { var o = Cn[n.parent[0]]; qn(e, n, o), e.push(Cn[n.parent[1]]) } else { if (null == n.parent) return; var s = Cn[n.parent]; qn(e, n, s) } t(e = Mn.a.uniqBy(e, "id")) }([Un()[0]]) }, clear: function() { Cn = {}, In = { master: Nn = null }, Ln = "master", On = 0 }, getBranchesAsObjArray: function() { var t = []; for (var e in In) t.push({ name: e, commit: Cn[In[e]] }); return t }, getBranches: function() { return In }, getCommits: function() { return Cn }, getCommitsArray: Un, getCurrentBranch: function() { return Ln }, getDirection: function() { return Bn }, getHead: function() { return Nn } }, Yn = n(85), Vn = n.n(Yn), Hn = {}, Gn = { nodeSpacing: 150, nodeFillColor: "yellow", nodeStrokeWidth: 2, nodeStrokeColor: "grey", lineStrokeWidth: 4, branchOffset: 50, lineColor: "grey", leftMargin: 50, branchColors: ["#442f74", "#983351", "#609732", "#AA9A39"], nodeRadius: 10, nodeLabel: { width: 75, height: 100, x: -25, y: 0 } }, $n = {}; function Wn(t, e, n, r) { var i = E(r, a.curveBasis), o = Gn.branchColors[n % Gn.branchColors.length], s = a.line().x((function(t) { return Math.round(t.x) })).y((function(t) { return Math.round(t.y) })).curve(i); t.append("svg:path").attr("d", s(e)).style("stroke", o).style("stroke-width", Gn.lineStrokeWidth).style("fill", "none") } function Kn(t, e) { e = e || t.node().getBBox(); var n = t.node().getCTM(); return { left: n.e + e.x * n.a, top: n.f + e.y * n.d, width: e.width, height: e.height } } function Xn(t, e, n, r, i) { _.debug("svgDrawLineForCommits: ", e, n); var a = Kn(t.select("#node-" + e + " circle")), o = Kn(t.select("#node-" + n + " circle")); switch (r) { case "LR": if (a.left - o.left > Gn.nodeSpacing) { var s = { x: a.left - Gn.nodeSpacing, y: o.top + o.height / 2 }; Wn(t, [s, { x: o.left + o.width, y: o.top + o.height / 2 }], i, "linear"), Wn(t, [{ x: a.left, y: a.top + a.height / 2 }, { x: a.left - Gn.nodeSpacing / 2, y: a.top + a.height / 2 }, { x: a.left - Gn.nodeSpacing / 2, y: s.y }, s], i) } else Wn(t, [{ x: a.left, y: a.top + a.height / 2 }, { x: a.left - Gn.nodeSpacing / 2, y: a.top + a.height / 2 }, { x: a.left - Gn.nodeSpacing / 2, y: o.top + o.height / 2 }, { x: o.left + o.width, y: o.top + o.height / 2 }], i); break; case "BT": if (o.top - a.top > Gn.nodeSpacing) { var u = { x: o.left + o.width / 2, y: a.top + a.height + Gn.nodeSpacing }; Wn(t, [u, { x: o.left + o.width / 2, y: o.top }], i, "linear"), Wn(t, [{ x: a.left + a.width / 2, y: a.top + a.height }, { x: a.left + a.width / 2, y: a.top + a.height + Gn.nodeSpacing / 2 }, { x: o.left + o.width / 2, y: u.y - Gn.nodeSpacing / 2 }, u], i) } else Wn(t, [{ x: a.left + a.width / 2, y: a.top + a.height }, { x: a.left + a.width / 2, y: a.top + Gn.nodeSpacing / 2 }, { x: o.left + o.width / 2, y: o.top - Gn.nodeSpacing / 2 }, { x: o.left + o.width / 2, y: o.top }], i) } } function Zn(t, e) { return t.select(e).node().cloneNode(!0) } function Jn(t, e, n, r) { var i, a = Object.keys(Hn).length; if ("string" == typeof e) do { if (i = Hn[e], _.debug("in renderCommitHistory", i.id, i.seq), t.select("#node-" + e).size() > 0) return; t.append((function() { return Zn(t, "#def-commit") })).attr("class", "commit").attr("id", (function() { return "node-" + i.id })).attr("transform", (function() { switch (r) { case "LR": return "translate(" + (i.seq * Gn.nodeSpacing + Gn.leftMargin) + ", " + jn * Gn.branchOffset + ")"; case "BT": return "translate(" + (jn * Gn.branchOffset + Gn.leftMargin) + ", " + (a - i.seq) * Gn.nodeSpacing + ")" } })).attr("fill", Gn.nodeFillColor).attr("stroke", Gn.nodeStrokeColor).attr("stroke-width", Gn.nodeStrokeWidth); var o = void 0; for (var s in n) if (n[s].commit === i) { o = n[s]; break } o && (_.debug("found branch ", o.name), t.select("#node-" + i.id + " p").append("xhtml:span").attr("class", "branch-label").text(o.name + ", ")), t.select("#node-" + i.id + " p").append("xhtml:span").attr("class", "commit-id").text(i.id), "" !== i.message && "BT" === r && t.select("#node-" + i.id + " p").append("xhtml:span").attr("class", "commit-msg").text(", " + i.message), e = i.parent } while (e && Hn[e]); Array.isArray(e) && (_.debug("found merge commmit", e), Jn(t, e[0], n, r), jn++, Jn(t, e[1], n, r), jn--) } function Qn(t, e, n, r) { for (r = r || 0; e.seq > 0 && !e.lineDrawn;) "string" == typeof e.parent ? (Xn(t, e.id, e.parent, n, r), e.lineDrawn = !0, e = Hn[e.parent]) : Array.isArray(e.parent) && (Xn(t, e.id, e.parent[0], n, r), Xn(t, e.id, e.parent[1], n, r + 1), Qn(t, Hn[e.parent[1]], n, r + 1), e.lineDrawn = !0, e = Hn[e.parent[0]]) } var tr, er = function(t) { $n = t }, nr = function(t, e, n) { try { var r = Vn.a.parser; r.yy = zn, r.yy.clear(), _.debug("in gitgraph renderer", t + "\n", "id:", e, n), r.parse(t + "\n"), Gn = Mn.a.assign(Gn, $n, zn.getOptions()), _.debug("effective options", Gn); var i = zn.getDirection(); Hn = zn.getCommits(); var o = zn.getBranchesAsObjArray(); "BT" === i && (Gn.nodeLabel.x = o.length * Gn.branchOffset, Gn.nodeLabel.width = "100%", Gn.nodeLabel.y = -2 * Gn.nodeRadius); var s = a.select('[id="'.concat(e, '"]')); for (var u in function(t) { t.append("defs").append("g").attr("id", "def-commit").append("circle").attr("r", Gn.nodeRadius).attr("cx", 0).attr("cy", 0), t.select("#def-commit").append("foreignObject").attr("width", Gn.nodeLabel.width).attr("height", Gn.nodeLabel.height).attr("x", Gn.nodeLabel.x).attr("y", Gn.nodeLabel.y).attr("class", "node-label").attr("requiredFeatures", "http://www.w3.org/TR/SVG11/feature#Extensibility").append("p").html("") }(s), jn = 1, o) { var c = o[u]; Jn(s, c.commit.id, o, i), Qn(s, c.commit, i), jn++ } s.attr("height", (function() { return "BT" === i ? Object.keys(Hn).length * Gn.nodeSpacing : (o.length + 1) * Gn.branchOffset })) } catch (t) { _.error("Error while rendering gitgraph"), _.error(t.message) } }, rr = "", ir = !1, ar = { setMessage: function(t) { _.debug("Setting message to: " + t), rr = t }, getMessage: function() { return rr }, setInfo: function(t) { ir = t }, getInfo: function() { return ir } }, or = n(86), sr = n.n(or), ur = {}, cr = function(t) { Object.keys(t).forEach((function(e) { ur[e] = t[e] })) }, fr = function(t, e, n) { try { var r = sr.a.parser; r.yy = ar, _.debug("Renering info diagram\n" + t), r.parse(t), _.debug("Parsed info diagram"); var i = a.select("#" + e); i.append("g").append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", "32px").style("text-anchor", "middle").text("v " + n), i.attr("height", 100), i.attr("width", 400) } catch (t) { _.error("Error while rendering info diagram"), _.error(t.message) } }, lr = {}, hr = "", dr = { addSection: function(t, e) { void 0 === lr[t] && (lr[t] = e, _.debug("Added new section :", t)) }, getSections: function() { return lr }, cleanupValue: function(t) { return ":" === t.substring(0, 1) ? (t = t.substring(1).trim(), Number(t.trim())) : Number(t.trim()) }, clear: function() { lr = {}, hr = "" }, setTitle: function(t) { hr = t }, getTitle: function() { return hr } }, pr = n(87), gr = n.n(pr), yr = {}, br = function(t) { Object.keys(t).forEach((function(e) { yr[e] = t[e] })) }, vr = function(t, e) { try { var n = gr.a.parser; n.yy = dr, _.debug("Rendering info diagram\n" + t), n.yy.clear(), n.parse(t), _.debug("Parsed info diagram"); var r = document.getElementById(e); void 0 === (tr = r.parentElement.offsetWidth) && (tr = 1200), void 0 !== yr.useWidth && (tr = yr.useWidth); r.setAttribute("height", "100%"), r.setAttribute("viewBox", "0 0 " + tr + " 450"); var i = tr, o = Math.min(i, 450) / 2 - 40, s = a.select("#" + e).append("svg").attr("width", i).attr("height", 450).append("g").attr("transform", "translate(" + i / 2 + ",225)"), u = dr.getSections(), c = 0; Object.keys(u).forEach((function(t) { c += u[t] })), _.info(u); var f = a.scaleOrdinal().domain(u).range(a.schemeSet2), l = a.pie().value((function(t) { return t.value }))(a.entries(u)), h = a.arc().innerRadius(0).outerRadius(o); s.selectAll("mySlices").data(l).enter().append("path").attr("d", h).attr("fill", (function(t) { return f(t.data.key) })).attr("stroke", "black").style("stroke-width", "2px").style("opacity", .7), s.selectAll("mySlices").data(l).enter().append("text").text((function(t) { return (t.data.value / c * 100).toFixed(0) + "%" })).attr("transform", (function(t) { return "translate(" + h.centroid(t) + ")" })).style("text-anchor", "middle").attr("class", "slice").style("font-size", 17), s.append("text").text(n.yy.getTitle()).attr("x", 0).attr("y", -200).attr("class", "pieTitleText"); var d = s.selectAll(".legend").data(f.domain()).enter().append("g").attr("class", "legend").attr("transform", (function(t, e) { return "translate(216," + (22 * e - 22 * f.domain().length / 2) + ")" })); d.append("rect").attr("width", 18).attr("height", 18).style("fill", f).style("stroke", f), d.append("text").attr("x", 22).attr("y", 14).text((function(t) { return t })) } catch (t) { _.error("Error while rendering info diagram"), _.error(t.message) } }; function mr(t) { return (mr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) } for (var _r = {}, wr = 0, xr = ["default", "forest", "dark", "neutral"]; wr < xr.length; wr++) { var kr = xr[wr]; _r[kr] = n(500)("./".concat(kr, "/index.scss")) } var Er = { theme: "default", themeCSS: void 0, fontFamily: '"trebuchet ms", verdana, arial;', logLevel: 5, securityLevel: "strict", startOnLoad: !0, arrowMarkerAbsolute: !1, flowchart: { htmlLabels: !0, nodeSpacing: 50, rankSpacing: 50, curve: "linear" }, sequence: { diagramMarginX: 50, diagramMarginY: 10, actorMargin: 50, width: 150, height: 65, boxMargin: 10, boxTextMargin: 5, noteMargin: 10, messageMargin: 35, mirrorActors: !0, bottomMarginAdj: 1, useMaxWidth: !0, rightAngles: !1, showSequenceNumbers: !1 }, gantt: { titleTopMargin: 25, barHeight: 20, barGap: 4, topPadding: 50, leftPadding: 75, gridLineStartPadding: 35, fontSize: 11, fontFamily: '"Open-Sans", "sans-serif"', numberSectionStyles: 4, axisFormat: "%Y-%m-%d" }, class: {}, git: {}, state: { dividerMargin: 10, sizeUnit: 5, padding: 8, textHeight: 10, titleShift: -15, noteMargin: 10, forkWidth: 70, forkHeight: 7, miniPadding: 2, fontSizeFactor: 5.02, fontSize: 24, labelHeight: 16, edgeLengthFactor: "20", compositTitleSize: 35, radius: 5 } }; w(Er.logLevel), l(Er); var Ar = function(t) { for (var e = Object.keys(t), n = 0; n < e.length; n++) if ("object" === mr(t[e[n]]) && null != t[e[n]]) for (var r = Object.keys(t[e[n]]), i = 0; i < r.length; i++) _.debug("Setting conf ", e[n], "-", r[i]), void 0 === Er[e[n]] && (Er[e[n]] = {}), _.debug("Setting config: " + e[n] + " " + r[i] + " to " + t[e[n]][r[i]]), Er[e[n]][r[i]] = t[e[n]][r[i]]; else Er[e[n]] = t[e[n]] }; var Sr = { render: function(t, e, n, r) { if (void 0 !== r) r.innerHTML = "", a.select(r).append("div").attr("id", "d" + t).attr("style", "font-family: " + Er.fontFamily).append("svg").attr("id", t).attr("width", "100%").attr("xmlns", "http://www.w3.org/2000/svg").append("g"); else { var i = document.getElementById(t); i && i.remove(); var o = document.querySelector("#d" + t); o && (o.innerHTML = ""), a.select("body").append("div").attr("id", "d" + t).append("svg").attr("id", t).attr("width", "100%").attr("xmlns", "http://www.w3.org/2000/svg").append("g") } window.txt = e, e = function(t) { var e = t; return e = (e = (e = e.replace(/style.*:\S*#.*;/g, (function(t) { return t.substring(0, t.length - 1) }))).replace(/classDef.*:\S*#.*;/g, (function(t) { return t.substring(0, t.length - 1) }))).replace(/#\w+;/g, (function(t) { var e = t.substring(1, t.length - 1); return /^\+?\d+$/.test(e) ? "fl°°" + e + "¶ß" : "fl°" + e + "¶ß" })) }(e); var c = a.select("#d" + t).node(), f = S.detectType(e), l = c.firstChild, h = l.firstChild, d = _r[Er.theme]; if (void 0 === d && (d = ""), void 0 !== Er.themeCSS && (d += "\n".concat(Er.themeCSS)), void 0 !== Er.fontFamily && (d += "\n:root { --mermaid-font-family: ".concat(Er.fontFamily, "}")), void 0 !== Er.altFontFamily && (d += "\n:root { --mermaid-alt-font-family: ".concat(Er.altFontFamily, "}")), "flowchart" === f) { var p = bt(e); for (var g in p) d += "\n.".concat(g, " > * { ").concat(p[g].styles.join(" !important; "), " !important; }") } var y = document.createElement("style"); y.innerHTML = s()(d, "#".concat(t)), l.insertBefore(y, h); var b = document.createElement("style"), v = window.getComputedStyle(l); switch (b.innerHTML = "#".concat(t, " {\n color: ").concat(v.color, ";\n font: ").concat(v.font, ";\n }"), l.insertBefore(b, h), f) { case "git": Er.flowchart.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, er(Er.git), nr(e, t, !1); break; case "flowchart": Er.flowchart.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, yt(Er.flowchart), vt(e, t, !1); break; case "sequence": Er.sequence.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, Er.sequenceDiagram ? (Ht(Object.assign(Er.sequence, Er.sequenceDiagram)), console.error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.")) : Ht(Er.sequence), Gt(e, t); break; case "gantt": Er.gantt.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, Me(Er.gantt), Te(e, t); break; case "class": Er.class.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, Ze(Er.class), Je(e, t); break; case "state": En(Er.state), An(e, t); break; case "info": Er.class.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, cr(Er.class), fr(e, t, u.version); break; case "pie": Er.class.arrowMarkerAbsolute = Er.arrowMarkerAbsolute, br(Er.class), vr(e, t, u.version) } a.select('[id="'.concat(t, '"]')).selectAll("foreignobject > *").attr("xmlns", "http://www.w3.org/1999/xhtml"); var m = a.select("#d" + t).node().innerHTML; if (Er.arrowMarkerAbsolute && "false" !== Er.arrowMarkerAbsolute || (m = m.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', "g")), m = function(t) { var e = t; return e = (e = (e = e.replace(/fl°°/g, (function() { return "&#" }))).replace(/fl°/g, (function() { return "&" }))).replace(/¶ß/g, (function() { return ";" })) }(m), void 0 !== n) switch (f) { case "flowchart": n(m, W.bindFunctions); break; case "gantt": n(m, ke.bindFunctions); break; case "class": n(m, Ye.bindFunctions); break; default: n(m) } else _.debug("CB = undefined!"); var w = a.select("#d" + t).node(); return null !== w && "function" == typeof w.remove && a.select("#d" + t).node().remove(), m }, parse: function(t) { var e, n = S.detectType(t); switch (_.debug("Type " + n), n) { case "git": (e = Vn.a).parser.yy = zn; break; case "flowchart": W.clear(), (e = X.a).parser.yy = W; break; case "sequence": (e = Tt.a).parser.yy = Ft; break; case "gantt": (e = Wt.a).parser.yy = ke; break; case "class": (e = He.a).parser.yy = Ye; break; case "state": (e = dn.a).parser.yy = ln; break; case "info": _.debug("info info info"), (e = sr.a).parser.yy = ar; break; case "pie": _.debug("pie"), (e = gr.a).parser.yy = dr } e.parser.yy.parseError = function(t, e) { throw { str: t, hash: e } }, e.parse(t) }, initialize: function(t) { _.debug("Initializing mermaidAPI ", u.version), "object" === mr(t) && Ar(t), l(Er), w(Er.logLevel) }, getConfig: h }, Mr = function() { Tr.startOnLoad ? Sr.getConfig().startOnLoad && Tr.init() : void 0 === Tr.startOnLoad && (_.debug("In start, no config"), Sr.getConfig().startOnLoad && Tr.init()) }; "undefined" != typeof document && /*! * Wait for document loaded before starting the execution */ window.addEventListener("load", (function() { Mr() }), !1); var Tr = { startOnLoad: !0, htmlLabels: !0, mermaidAPI: Sr, parse: Sr.parse, render: Sr.render, init: function() { var t, e, n, r = Sr.getConfig(); _.debug("Starting rendering diagrams"), arguments.length >= 2 ? ( /*! sequence config was passed as #1 */ void 0 !== arguments[0] && (Tr.sequenceConfig = arguments[0]), t = arguments[1]) : t = arguments[0], "function" == typeof arguments[arguments.length - 1] ? (e = arguments[arguments.length - 1], _.debug("Callback function found")) : void 0 !== r.mermaid && ("function" == typeof r.mermaid.callback ? (e = r.mermaid.callback, _.debug("Callback function found")) : _.debug("No Callback function found")), t = void 0 === t ? document.querySelectorAll(".mermaid") : "string" == typeof t ? document.querySelectorAll(t) : t instanceof window.Node ? [t] : t, _.debug("Start On Load before: " + Tr.startOnLoad), void 0 !== Tr.startOnLoad && (_.debug("Start On Load inner: " + Tr.startOnLoad), Sr.initialize({ startOnLoad: Tr.startOnLoad })), void 0 !== Tr.ganttConfig && Sr.initialize({ gantt: Tr.ganttConfig }); for (var a = function(r) { var a = t[r]; /*! Check if previously processed */ if (a.getAttribute("data-processed")) return "continue"; a.setAttribute("data-processed", !0); var o = "mermaid-".concat(Date.now()); n = a.innerHTML, n = i.a.decode(n).trim().replace(/<br\s*\/?>/gi, "<br/>"), Sr.render(o, n, (function(t, n) { a.innerHTML = t, void 0 !== e && e(o), n && n(a) }), a) }, o = 0; o < t.length; o++) a(o) }, initialize: function(t) { void 0 !== t.mermaid && (void 0 !== t.mermaid.startOnLoad && (Tr.startOnLoad = t.mermaid.startOnLoad), void 0 !== t.mermaid.htmlLabels && (Tr.htmlLabels = t.mermaid.htmlLabels)), Sr.initialize(t), _.debug("Initializing mermaid ") }, contentLoaded: Mr }; e.default = Tr }]).default })); //# sourceMappingURL=mermaid.min.js.map